繁体   English   中英

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

[英]How to configure the jdk14 logging's pattern

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

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

从 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 及更高版本,请参阅下面的 David 回答。

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

在 util logging API 中配置输出格式的方法是设置Formatter 默认情况下, SimpleFormatter附加到您的ConsoleHandler 这个格式化程序只是对模式进行硬编码,不允许您设置它。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM