我的 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 宽格式。如果您的项目包括 JavaMail 1.5.2 或更高版本你可以使用 CompactFormatter在您的 ConsoleHandler 上,在您的 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
关于java - logging.properties 中的多种格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23513193/