2012-08-07 109 views
5

在java中,您可以使用System.out.println()打印空白行,但它如何與log4j一起用於日誌文件? 那裏我也想在日誌文件中有一個或多個空行。Log4J將空行打印到日誌文件

我已經讀過了follwing: log4j how to append blank line

但由於與

logger.debug("\n"); 
logger.debug(""); 

你不打印的消息,但其他信息,如時間等(的佈局這是不是真的有幫助記錄器)仍然存儲在日誌文件中。但我只想要一個完整的空行。 任何人都可以幫助我嗎?

回答

8

Log4j沒有被設計爲寫空白行。

您無法在記錄器中找到此選項,因爲記錄器與寫入文件或控制檯的其他appender無關。

我認爲你需要創建自定義的FileAppender,它在寫入之前檢查日誌消息。如果您的message.equals("\n");通過您自己的文件訪問文件,您可以追加一個沒有佈局的空白行,並跳過佈局的正常記錄。那麼你可以使用Logger.debug("\n");

另外這是一個不好的做法,添加空白行。它類似於將您的日誌消息分成幾行。您希望每個Logmessage都在一行中,因此它們很容易解析LogViewer工具,如chainsawOtrosLogViewer Stacktraces是一個例外。

2

使用空白布局和使用該appender的記錄器創建您自己的appender。然後使用該記錄器寫入空白行。確保將記錄器的additivity屬性設置爲false,以便根記錄器不會使用其appender的格式編寫消息。