2010-03-27 94 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