我想我可以通过添加 java.util.logging.ConsoleHandler.pattern 行来更改模式,但是在哪里可以检查 %u %h 等模式信息?
2 回答
有人已经回答了这个问题,但我想提供一些新信息:
从 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
# Configure logging levels
# Available log levels are:
# OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL
# root logger
.level = WARNING
# child logger
org.example.level = ALL
当你调用你的java程序时,你可以指定你的配置文件作为参数:
java -Djava.util.logging.config.file=logging.properties -jar myProgram.jar
编辑:以下内容当时是为 Java 6 编写的。对于 7 及更高版本,请参阅下面大卫的回答。
AFAIK没有这样的财产。有一个java.util.logging.FileHandler.pattern
但这是设置输出文件名的模式,而不是日志格式。
在 util logging API 中配置输出格式的方式是设置Formatter
. 默认情况下, aSimpleFormatter
附加到您的ConsoleHandler
. 此格式化程序只是对模式进行硬编码,并且不允许您对其进行设置。
如果您需要不同的输出格式,则必须实现自己的Formatter
,或使用不同的日志框架,例如logback。