Log4net 发布时不写入

Log 4 Net does not write when published

我在 .Net Core 2.0 上使用 log4net,当从 visual studio 运行ning 时一切正常,但是当我发布我的应用程序(本地)时。文件已创建,但没有消息写入文件。 (当 运行 在调试和发布时)。这是我的配置:

<?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 在我的发布目录中,这不是问题所在

原来我们有多个 appsettings.json 还有 appsettings.Development.json,

我把它们都改成使用:

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

一切都开始工作了。