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

How do I setup a FileAppender logger from log4net for a .NET Standard 2.0 class library?

如何使用 .NET Standard 2.0 从 log4net 为 class 库设置 File Appender 记录器?我没有 AssemblyInfo.cs。我认为我有一个基本的误解导致我对此感到困惑,所以这可能是一个简单的答案,但我刚刚启动了一个 class 库,我希望我们的解决方案中尽可能多的项目可以访问它,并且从一开始就有内部日志记录。

非常感谢suggestions/help。

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

也就是说,我建议不要直接使用 log4net,而是使用 NuGet 包 Microsoft.Extensions.Logging.Abstractions 中的 ILogger。这允许您的图书馆的消费者使用他们想要的任何日志系统,而不是只使用 log4net。

不确定我是否理解你的意思need/want,但这是配置文件应该是什么样子的想法

   <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>

如果我没记错的话,你不需要在你的程序集信息中添加任何东西(如果你没有)但是你需要在启动时添加这样的东西

        log4net.Config.XmlConfigurator.Configure();

(在我的例子中是 webapi,所以我将它添加到我的 startup.cs)

希望对您有所帮助!