如何配置jdk14日志记录的模式

时间:2011-03-24 08:54:50

标签: java java.util.logging

我想我可以通过添加行java.util.logging.ConsoleHandler.pattern来改变模式,但是在哪里检查模式信息,比如%u%h等?

2 个答案:

答案 0 :(得分:28)

这个问题已经有人回答了,但我想提供一些新信息:

从Java 7开始,可以使用SimpleFormatter配置日志消息的输出模式。

您可以在日志记录属性文件中使用此属性:

java.util.logging.SimpleFormatter.format = [%1$tc] %4$s: %2$s - %5$s %6$s%n

如果您需要有关模式语法的更多信息,请查看此处: http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html

上面属性值中的数字是指提供给格式化程序的参数。 有关更多信息,请参阅官方Java文档: http://docs.oracle.com/javase/7/docs/api/java/util/logging/SimpleFormatter.html

示例配置文件logging.properties

handlers = java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
# Pattern works since Java 7
java.util.logging.SimpleFormatter.format = [%1$tc] %4$s: %2$s - %5$s %6$s%n

调用java程序时,可以将配置文件指定为参数:

java -Djava.util.logging.config.file=logging.properties -jar myProgram.jar

答案 1 :(得分:8)

编辑:下面是为Java 6编写的。对于7及更高版本,请参阅David的答案。

AFAIK没有这样的财产。有java.util.logging.FileHandler.pattern,但这是设置输出文件名的模式,而不是日志格式。

在util日志API中配置输出格式的方法是设置Formatter。默认情况下,ConsoleHandler附加了SimpleFormatter。此格式化程序只是对模式进行硬编码,并且不允许您进行设置。

如果您需要不同的输出格式,则必须实现自己的Formatter,或使用其他日志框架,例如logback