Java logging.properties中的多种格式

Java logging.properties中的多种格式,java,logging,java.util.logging,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 = j

我的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

下面的对应格式化程序也不起作用。有什么想法吗?我不想实现自己的格式化程序,只是作为一种解决方法…

java.util.logging.SimpleFormatter只支持一种JVM范围的格式。如果项目包含1.5.2或更高版本,则可以在ConsoleHandler上使用,在FileHandler上使用SimpleFormat

##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

实现自己的格式化程序不是一个解决方法。这是实现所需格式的正确方法。是的,但我可以使用SimpleFormatter指定所需的格式。那么,我为什么要开发一个自己的格式化程序,它基本上也是为了能够正确地配置记录器呢?这听起来像是一种变通方法。如果您为SimpleFormatter指定一种格式,它将被SimpleFormatter的所有实例采用。那不是你想要的,对吧?每个处理程序需要一个不同的处理程序。因此,您可以根据需要的格式实现一个格式化程序。基本上,我想要相同(但不是相同)的格式化程序-具有不同的配置。所以我想这是不可能的?不,这是不可能的。