【问题标题】:How do I setup a FileAppender logger from log4net for a .NET Standard 2.0 class library?如何从 log4net 为 .NET Standard 2.0 类库设置 FileAppender 记录器?
【发布时间】:2018-01-24 20:54:48
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 这是一个很好的建议。我会调查的。谢谢!
    • 您可以使用任何链接来展示如何使用这个抽象?我找不到任何东西...
    • @JakeSmith This documentation 在 ASP.Net 部分下,但它在网络标准库或 exe 中的工作方式仍然完全相同。
    【解决方案2】:

    不确定我是否理解您需要/想要的,但这是配置文件应该是什么样子的一个想法

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

    我希望这会有所帮助!

    【讨论】:

    • 他有一个图书馆。没有启动或主要放入
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多