我想我可以通过添加java.util.logging.ConsoleHandler.pattern行来更改模式,但是在哪里可以检查模式信息,如%u %h等?
发布于 2011-03-24 17:16:49
编辑:下面是当时针对Java 6编写的代码。对于7及更高版本,请参考David的回答。
AFAIK没有这样的属性。有一个java.util.logging.FileHandler.pattern,但这是设置输出文件名的模式,而不是日志记录格式。
在util logging API中配置输出格式的方法是设置Formatter。默认情况下,ConsoleHandler会附加一个SimpleFormatter。这个格式化程序只是对模式进行硬编码,不允许您设置它。
如果需要不同的输出格式,则必须实现自己的Formatter,或者使用不同的日志记录框架,如logback。
发布于 2013-02-22 20:12:14
这个问题已经有人回答了,但我想提供一些新的信息:
从Java7开始,可以使用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.jarhttps://stackoverflow.com/questions/5416769
复制相似问题