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

问题描述 投票:0回答:2

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

c# log4net .net-standard log4net-configuration log4net-appender
2个回答
1
投票

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

话虽如此,我建议不要直接使用 log4net,而是使用 NuGet 包中的

ILogger
Microsoft.Extensions.Logging.Abstractions
。这允许您的库的使用者使用他们想要的任何日志系统,而不是仅限于使用 log4net。


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

我希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.