我在asp中配置log4net.本文中提到的NETCore2.0应用程序LINK

program.cs

public static void Main(string[] args)
{
    var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
    XmlConfigurator.Configure(logRepository, new FileInfo("log4net.配置"));

    BuildWebHost(args).Run();
}

家庭控制器

public class 家庭控制器 : Controller
{
    private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(家庭控制器));

    public IActionResult Error()
    {
        log.Info("Hello logging world!");
        return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
    }
}

log4net.配置

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <log4net>
    <root>
      <level value="ALL" />
      <appender-ref ref="RollingFile" />
    </root>
    <appender name="RollingFile" type="log4net.Appender.FileAppender">
      <file value="‪C:\Temp\app.log" /> 
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5p %d{hh:mm:ss} %message%newline" />
      </layout>
    </appender>
  </log4net>
</configuration>

不幸的我没有看到在中生成的任何文件‪C:\Temp\app.log号目录.会是什么错误?如何为asp配置log4net.net core 2.0?

推荐答案

我使用以下代码成功地记录了一个文件

public static void Main(string[] args)
{
    XmlDocument log4netConfig = new XmlDocument();
    log4netConfig.Load(File.OpenRead("log4net.config"));
    var repo = log4net.LogManager.CreateRepository(Assembly.GetEntryAssembly(),
               typeof(log4net.Repository.Hierarchy.Hierarchy));
    log4net.Config.XmlConfigurator.Configure(repo, log4netConfig["log4net"]);

    BuildWebHost(args).Run();
}

log4net.在网站根目录中配置

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
    <file value="C:\Temp\" />
    <datePattern value="yyyy-MM-dd.'txt'"/>
    <staticLogFileName value="false"/>
    <appendToFile value="true"/>
    <rollingStyle value="Date"/>
    <maxSizeRollBackups value="100"/>
    <maximumFileSize value="15MB"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level App  %newline %message %newline %newline"/>
    </layout>
  </appender>
    <root>
      <level value="ALL"/>
      <appender-ref ref="RollingLogFileAppender"/>
    </root>
</log4net>

Asp.net相关问答推荐

IIS重写模块排除机器人但允许GoogleBot

ASP.NET控制器上的默认接受媒体类型

任何人都有解决 Internet Explorer 上剩余 n 项问题的 idea 吗?

ASP.NET web api 无法获取 application/x-www-form-urlencoded HTTP POST

ASP.NET 如何将控件呈现为 HTML?

没有身份的 ASP.NET Core 2.0 承载身份验证

HttpContext.Cache 过期

区分开发、登台和生产环境之间的 web.config

带有完整内存错误的 WCF 服务(内存门判断失败,因为可用内存) - 如何解决

在asp.net控件之间动态添加

IIS Express 安装目录在哪里?

ASP.NET Core 中的 NuGet 包位置在哪里?

如何删除asp.net中的特定会话?

Web API 必填参数

脚本管理器控制实际上是做什么的?

压力测试 ASP.Net 应用程序

使用 ConfigurationManager.RefreshSection 重新加载配置而不重新启动应用程序

在 Visual Studio 2012 中调试 .NET Framework 源代码?

如何调试 w3wp clr.dll 错误

如何使用 int ID 列更改 ASP.net Identity 2.0 的表名?