2010-03-27 95 views
9

我使用了RollingFileAppender。我想在程序启动时向日志添加一个空行。怎么做?谢谢。如何使用log4net在日志文件中添加空白行?

编辑: 好的,谢谢大家。对不起,我问了一个困惑的问题。 让我来解释一下。 我配置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. 
... 

任何想法?谢谢。

+0

对不起,你为什么要添加一条白线? :-)还..你的问题是如何登录log4net的白线或WHERE把日志句子? – 2010-03-27 01:37:27

+0

你说得对。我的问题是如何使用log4net登录白线。你能告诉我如何?谢谢。 – Jollian 2010-03-27 01:56:37

+1

内置页眉/页脚功能有什么问题(请参阅http://logging.apache.org/log4net/release/faq。html#layout-header-xml-newlines) – sgmoore 2013-01-16 09:51:29

回答

4

你需要一个特殊的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> 

这种配置允许的白线的插入,全白(< conversionPattern值=“%消息%的换行符”/>)

并记录将是代码

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

最后一个评论:这可以让你做什么,我想你想,但我不会做它在我自己的发展:-)如果我误解了你的问题,请升et我知道

EDIT1此appendder /记录器被添加到您现有的配置。它将只用于生成你需要的白线。对于记录的其余部分,你会用你以前存在的记录器/附加器,

+0

谢谢你的回答。但是,这将使我每次登录时插入一个换行符。我对我的问题做了一些解释。如果你仍然对这个问题有兴趣,你可以看一看。 – Jollian 2010-03-27 06:18:11

+0

好的解决方案。非常感谢。 – Jollian 2010-03-29 03:00:12

4

Log.Debug(Environment.Newline);

+0

谢谢你的回答。我编辑了这个问题。这可能更清楚。 您的解决方案确实可以添加换行符。但最后的logline会有点奇怪。 – Jollian 2010-03-27 06:25:12

2

变化

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

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

这将在文件的最后添加两个新行。第一个将作为新线出现,第二个作为下一个日志的起点。

19

选定的答案比它需要的要难得多。我不确定问题最初被问到时是否不存在,但正确的方法是在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

+0

为我工作出色。一致认为这比接受的答案简单得多。 – 2014-03-26 00:19:21

+0

是的,这是正确的方法。好简单。 – 2015-06-22 19:28:02

+0

@Nick这似乎没有解决原始问题中的要求。要求在程序运行结束时插入空白行。此解决方案在**每个**日志条目之后插入一个空行。 – kannankeril 2017-03-13 19:07:42