简体   繁体   English

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

[英]How to add a blank line in the log file using log4net?

I used RollingFileAppender. 我用过RollingFileAppender。 And I want add a blank line to the log when my program launches. 我想在程序启动时向日志添加一个空行。 How to do that? 怎么做? Thanks. 谢谢。

Edit: OK, thanks for you all. 编辑:好的,谢谢大家。 Sorry for the confused question I asked. 对不起我提出的疑惑问题。 Let me make some explanation. 我来解释一下。 I config the log4net as follows: 我按如下方式配置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>

and the log will be: 并且日志将是:

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.

What i hope is make the log looks like this: 我希望使日志看起来像这样:

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

Any idea? 任何的想法? Thanks. 谢谢。

The selected answer is MUCH more difficult than it needs to be. 选择的答案比它需要的要困难得多。 I'm not sure if it didn't exist when the question was originally asked, but the correct way to do this is with a <header> or <footer> in the appender's layout. 我不确定在最初询问问题时它是否不存在,但正确的方法是在appender的布局中使用<header><footer> Something like this: 像这样的东西:

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

That will insert a blank line as a footer to each logging run. 这将在每个日志记录运行中插入一个空白行作为页脚。 More detail is here: http://logging.apache.org/log4net/release/faq.html#layout-header-xml-newlines 更多细节在这里: http//logging.apache.org/log4net/release/faq.html#layout-header-xml-newlines

Log.Debug(Environment.Newline);

You would need a special appender. 你需要一个特殊的appender。 Here you have a configuration example 这里有一个配置示例


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

This configuration allows the insert of a WHITE LINE, COMPLETELY WHITE (<conversionPattern value="%message%newline" />) 此配置允许插入WHITE LINE,COMPLETELY WHITE(<conversionPattern value =“%message%newline”/>)

And the code to log would be 并且要记录的代码是

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

A last comment: this allows you to do what I think you want but I wouldn't do it in my own development :-) if I misunderstood your question please let me know 最后一条评论:这可以让你做我认为你想要的但我不会在自己的发展中做到这一点:-)如果我误解了你的问题请告诉我

EDIT1 This appedender / logger is ADDED to your existing configuration. EDIT1此appedender / logger已添加到您现有的配置中。 It would be ONLY used to generate the white line you need. 它仅用于生成您需要的白线。 For the rest of the logging you would use your previously existing logger / appender, 对于其余的日志记录,您将使用以前存在的记录器/ appender,

Change 更改

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

with

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

This will add two newlines at the end of file. 这将在文件末尾添加两个换行符。 First one will be there as a new Line , second one acts as a starting point of the next log. 第一个将作为新行,第二个作为下一个日志的起点。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM