首页 > 解决方案 > Log 4 Net 发布时不写

问题描述

我在 .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();
    //...
}

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

发布后如何使日志记录正常工作?

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

标签: c#.net-corelog4netpublish

解决方案


事实证明,我们是多重appsettings.json的,还有appsettings.Development.json

我将它们都更改为使用:

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

一切都开始工作了。


推荐阅读