微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c#-4.0 – Log4net C#4.0 [(null)]输出

当我使用log4net登录.NET4.0时,我使用以下代码

LogManager声明:

private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

而在代码中使用时:

log.Info("My info text");

这会将以下内容输出到日志文件

2013-10-01 14:41:11,010 [3] INFO  MyNamespace.MyClass [(null)] - My info text

我想知道[(null)]是什么意思,我该如何去除/改变它?

这是我的配置文件

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  <log4net>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
    </root>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
      <param name="File" value="log-file.txt" />
      <param name="AppendToFile" value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
  </log4net>
</configuration>

解决方法

要停止它从配置文件删除[%属性{NDC}].

本文介绍了如何使用NDC,When to use ‘nested diagnostic context’ (NDC)?

简而言之,调用静态方法log4net.NDC.Push设置代码的上下文.

log4net.NDC.Push("context")

从该点向前输出日志消息将提供%属性{NDC}作为上下文.

原文地址:https://www.jb51.cc/csharp/94221.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐