2012-08-07 112 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的格式编写消息。