logging.properties中的多种格式

时间:2014-05-07 08:55:35

标签: java logging java.util.logging

我的logging.properties中有两个处理程序:

handlers = java.util.logging.FileHandler, java.util.logging.ConsoleHandler

两者都使用SimpleFormatter

java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

但是现在我想为这些处理程序提供两种不同的格式。控制台处理程序应该只打印一条短消息。另一方面,文件处理程序应该打印更详细的消息。 但是如何为两种格式化程序使用不同的格式?以下不起作用:

java.util.logging.FileHandler.formatter.format = ...

并使用

java.util.logging.SimpleFormatter.format
在相应的格式化程序下面,

也不起作用。有任何想法吗?我不想像解决方法那样实现自己的格式化程序......

1 个答案:

答案 0 :(得分:0)

java.util.logging.SimpleFormatter仅支持一种JVM宽格式。如果您的项目包含JavaMail 1.5.2或更高版本,则可以使用ConsoleHandler上的CompactFormatter和FileHandler上的SimpleFormatter。

##logging.properties#
handlers = java.util.logging.FileHandler, java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.formatter=com.sun.mail.util.logging.CompactFormatter
com.sun.mail.util.logging.CompactFormatter.format=%4$s: %5$s [%1$tc]%n
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format=%1$tc %2$s%n%4$s: %5$s%6$s%n