【问题标题】:How to setup log4net so that it doesn't log some attributes?如何设置 log4net 使其不记录某些属性?
【发布时间】:2014-11-12 15:19:47
【问题描述】:

我正在使用 Visual Studio 2008、.net framework 3.5、c#、windows 7 上的解决方案。我创建了一个 log4net 库,可以写入这样的文件:

2014-11-11 16:33:31,387 [7] DEBUG Utilities.Log.Debug():24 - 来自应用程序的消息。

我想在它写的时候去掉一些属性,让它这样写:

2014-11-11 16:33:31,387 - 来自应用程序的消息。

基本上我想去掉[7]号,项目名和方法名,以及方法在App中所在的代码行。

我已搜索文档,但找不到与此问题相关的任何内容。

我能做什么?

谢谢。

【问题讨论】:

    标签: c# log4net


    【解决方案1】:

    您的 log4net 配置文件(例如 Log4Net.config)应至少包含一个 <appender> 部分,其中 <conversionPattern> 嵌套在 <layout> 下。例如,登录到控制台:

    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <target value="Console.Out" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
    </appender>
    

    如果您只需要日期和记录的消息,您的 &lt;conversionPattern&gt; 应该只是 value="%date - %message%newline"

    更多信息请参见the PatternLayout Class documentation

    【讨论】:

      【解决方案2】:

      在您的 .config 文件中搜索 log4net.Appender.FileAppender。你应该有这样的东西:

      <log4net>
          <appender name="TextFileAppender" type="log4net.Appender.FileAppender">
              <file value="Logs/Logger.log" />
              <appendToFile value="true" />
              <layout type="log4net.Layout.PatternLayout">
                  <conversionPattern value="%date{dd.MM.yyyy HH:mm:ss} [%identity] %-5level %class.%method: %message%newline" />
              </layout>
          </appender>
      </log4net>
      

      检查conversionPattern 并更改它以更改记录的消息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-09-23
        • 1970-01-01
        • 2022-01-19
        • 1970-01-01
        • 2011-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多