5

在 java 中,您可以使用 System.out.println() 打印一个空行,但它如何与 log4j 在日志文件中一起工作?我还想在日志文件中有一个或多个空行。

我已经阅读了以下内容: log4j 如何附加空白行

但这并没有真正的帮助,因为

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

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

4

2 回答 2

8

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

您在记录器中找不到此选项,因为记录器独立于写入文件或控制台或其他东西的附加程序。

我认为您需要创建自定义 FileAppender,它会在写入之前检查日志消息。如果您message.equals("\n");通过自己访问文件来附加一个没有布局的空行并跳过带有布局的正常日志记录。那么你可以使用Logger.debug("\n");

此外,添加空行也是一种不好的做法。它类似于将您的日志消息拆分为几行。您希望所有的 Logmessage 都在一行中,因此它们很容易解析为 LogViewer-Tools,如链锯OtrosLogViewer一个例外是 Stacktraces。

于 2012-08-07T11:56:13.420 回答
2

创建您自己的具有空布局的附加程序和使用该附加程序的记录器。然后使用该记录器写入空白行。确保将 logger 的 additivity 属性设置为 false,以便根 logger 不会使用其 appender 的格式写入消息。

于 2013-02-19T14:58:58.560 回答