Log4J打印空行到logfile

时间:2012-08-07 10:27:00

标签: log4j line logfile

在java中你可以使用System.out.println()来打印一个空白行,但它如何在日志文件中使用log4j? 在那里我还想在日志文件中有一个或多个空行。

我已经读过以下内容: log4j how to append blank line

但这并不是很有用,因为

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

您不打印消息,但其他信息(如时间等)(记录器的布局)仍存储在日志文件中。但我只想要一个完整的空行。 有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:8)

Log4j不是为了写空行而设计的。

您无法在记录器中找到此选项,因为记录器独立于写入文件或控制台或不同内容的appender。

我认为您需要创建自定义FileAppender,在编写之前检查Logging Message。如果您的message.equals("\n");通过自己访问文件而在没有布局的情况下附加空行,并跳过使用布局的正常日志记录。然后你可以使用Logger.debug("\n");

添加空行也是一种不好的做法。它类似于将您的日志消息拆分为多行。您希望每个Logmessage都在一行中,因此可以轻松解析LogViewer-Tools,例如chainsawOtrosLogViewer Stacktraces有一个例外。

答案 1 :(得分:2)

使用空布局创建自己的appender以及使用该appender的记录器。然后使用该记录器写下空白行。确保将logger的additivity属性设置为false,以便根记录器不使用其appender的格式来编写消息。