【问题标题】:Setting up Log4Net to log output from a Class Library设置 Log4Net 以记录类库的输出
【发布时间】:2012-07-19 13:11:45
【问题描述】:

我正在尝试设置 Log4Net(这是我第一次使用 Log4Net)以记录到程序集中的文本文件。我没有收到任何错误,但它也不起作用。我可以对记录输出的行进行断点并查看它们是否已到达,但就像我说什么都没有发生。

我哪里错了?

我在packages.config 文件的<packages> 属性中添加了以下内容:

  <log4net>
    <appender name="FileAppender" type="log4net.Appender.FileAppender,log4net">
      <file value="c:\CTI\log.txt" />
      <appendToFile value="true" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
        <levelMax value="FATAL" />
      </filter>
    </appender>

    <root>
      <level value="DEBUG"/>
      <appender-ref ref="FileAppender"/>
    </root>
  </log4net>
</configuration>

我在AssemblyInfo.cs 中添加了以下行:

[assembly: log4net.Config.XmlConfigurator(Watch=true)]

我使用 NuGet 添加了 Log4Net 程序集,我的日志记录如下:

private log4net.ILog _Log;
_Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
_Log.Debug("FooBar");

就像我说的,没有错误,但也没有任何反应。

我错过了什么?

【问题讨论】:

    标签: c# log4net .net-assembly


    【解决方案1】:

    有一个错误是您将 log4net 配置部分添加到 nuget 配置文件 (packages.config)。

    您可以在 app/web 配置中或从 appSettings 指向的单独文件中进行配置,例如 配置位于名为config.log4net 的文件中(文件的copy to output directory 属性设置为copy always),您在app/web.config 中添加以下条目:

    <add key="log4net.config" value="config.log4net"/>
    

    如果你不想依赖web/app配置,你可以在AssemblyInfo.cs中设置XmlConfiguratorAttribute属性的ConfigFileExtension属性:

    [assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "log4net", Watch = true)]
    

    然后将 log4net 配置文件命名为与您的 exe/程序集相同的名称以及配置的扩展名,例如MyApplication.exe.log4netMyLibrary.dll.log4net

    另一个错误是您的 appender 过滤器。您设置的范围不包括您希望记录的 DEBUG 级别。这里都是logging levels

    ALL
    DEBUG
    INFO
    WARN
    ERROR
    FATAL
    OFF
    

    如您所见,DEBUG 不在INFOFATAL 之间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多