如何使用log4net在日志文件中添加空行?

时间:2010-03-27 01:22:27

标签: c# winforms log4net

我使用了RollingFileAppender。我想在程序启动时向日志添加一个空行。怎么做?感谢。

编辑: 好的,谢谢大家。对不起我提出的疑惑问题。 我来解释一下。 我按如下方式配置log4net:

<log4net>
  <appender name="MyFileAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="ClientLog.log" />
    <param name="AppendToFile" value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%date{yyyy/MM/dd HH:mm:ss},%5p,%m%n" />
    </layout>
  </appender>

  <logger name="GlobalUse" >
    <level value="Info"/>
    <appender-ref ref="MyFileAppender" />
  </logger>

</log4net>

,日志将是:

2010/03/27 13:55:27, INFO, Program start.
2010/03/27 13:55:29, INFO, Program end.
2010/03/27 13:56:30, INFO, Program start.
2010/03/27 13:56:32, INFO, Program end.

我希望让日志看起来像这样:

2010/03/27 13:55:27, INFO, Program start.
2010/03/27 13:55:29, INFO, Program end.

2010/03/27 13:56:30, INFO, Program start.
2010/03/27 13:56:32, INFO, Program end.

2010/03/27 13:57:30, INFO, Program start.
...

有什么想法吗?感谢。

4 个答案:

答案 0 :(得分:20)

选择的答案比实际需要的要困难得多。我不确定在最初询问问题时它是否不存在,但正确的方法是在appender的布局中使用<header><footer>。像这样:

<layout type="log4net.Layout.PatternLayout">
  <footer value="&#13;&#10;" />
  <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>

这将在每个日志记录运行中插入一个空白行作为页脚。更多细节在这里:http://logging.apache.org/log4net/release/faq.html#layout-header-xml-newlines

答案 1 :(得分:6)

Log.Debug(Environment.Newline);

答案 2 :(得分:3)

你需要一个特殊的appender。这里有一个配置示例


<log4net>
  ...
  <appender name="MyRollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="C:\temp\mylog.log" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <staticLogFileName value="true" />
    <maximumFileSize value="2MB" />
    <maxSizeRollBackups value="20" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%message%newline" />
    </layout>
  </appender>

  <logger name="MyLogger">
    <level value="Info" />
    <appender-ref ref="MyRollingLogFileAppender" />
  </logger>  
  ...
</log4net>

此配置允许插入WHITE LINE,COMPLETELY WHITE(&lt; conversionPattern value =“%message%newline”/&gt;)

要记录的代码是

LogManager.GetLogger("MyLogger").Info("");

最后评论:这可以让你做我认为你想要的但我不会在自己的发展中做到这一点:-)如果我误解了你的问题请告诉我

EDIT1 此外观/记录器已添加到现有配置中。它仅用于生成您需要的白线。对于其余的日志记录,您将使用以前存在的记录器/追加器,

答案 3 :(得分:2)

更改

<layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%message%newline" />
</layout>

<layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%message%newline%newline" />
</layout>

这将在文件末尾添加两个换行符。第一个将作为新行存在,第二个作为下一个日志的起点。

相关问题