Log 4 Net在发布时不会写入

时间:2018-06-07 01:40:57

标签: c# .net-core log4net publish

我在.Net Core 2.0上使用log4net,从visual studio运行时,所有日志都很好,但是当我发布我的应用程序(本地)时。该文件已创建,但没有消息写入该文件。 (在调试和发布中运行时)。这是我的配置:

<?xml version="1.0" encoding="utf-8" ?>
  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
    <file value="./logs/ids4" />
    <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>

我的AppSettings.Json:

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

在我的启动文件中,我像这样配置日志记录:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    loggerFactory.AddConsole(Configuration.GetSection("Logging"));
    loggerFactory.AddDebug();
    loggerFactory.AddLog4Net();
    //...
}

这不是权限问题,因为文件仍然是创建的,它只是空的。我最好的猜测是它与日志记录级别有关吗?我想在调试中发布会解决这个问题。

如何在发布时让日志记录工作?

注意我已经查看了其他一些questions,但是他们的问题似乎是文件没有被复制到发布目录。 Log4Net.Config在我的发布目录中,这不是问题

1 个答案:

答案 0 :(得分:0)

事实证明我们有多个appsettings.json,还有appsettings.Development.json

我改变它们两个使用:

"LogLevel": {
  "Default": "Information",
  "System": "Information",
  "Microsoft": "Information"
}  

一切都开始了。