如何从log4net为.NET Standard 2.0类库设置FileAppender记录器?

时间:2018-01-24 20:54:49

标签: c# log4net .net-standard log4net-configuration log4net-appender

如何使用.NET Standard 2.0从log4net为类库设置File Appender记录器?我没有AssemblyInfo.cs。我认为我有一个根本的误解导致我对此感到困惑,所以这可能是一个简单的答案,但我刚开始创建一个类库,我想在我们的解决方案中尽可能多地访问项目并从内部记录开始。

非常感谢任何和所有建议/帮助。

2 个答案:

答案 0 :(得分:1)

AssemblyInfo.cs文件没有什么特别之处。配置log4net的属性可以放在程序集中的任何文件中。

话虽如此,我建议不要直接使用log4net,而是使用NuGet包ILogger中的Microsoft.Extensions.Logging.Abstractions。这允许您的库的使用者使用他们想要的任何日志记录系统,而不是仅使用log4net。

答案 1 :(得分:0)

不确定我是否理解您需要/想要的东西,但这是对配置文件应该如何的概念

   <log4net>
    <root>
      <level value="INFO" />
      <appender-ref ref="LogFileAppender" />
    </root>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="test.txt" />
      <param name="AppendToFile" value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="5MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%date [%thread] %-5level %logger [%M %C] - %message%newline" />
      </layout>
  </log4net>

如果我没弄错的话,你不需要在你的assemblyinfo中添加任何东西(如果你没有),但你需要在启动时添加这样的东西

        log4net.Config.XmlConfigurator.Configure();

(在我的情况下是webapi,所以我把它添加到我的startup.cs)

我希望这有帮助!