格式化Java日志
我试图通过属性文件格式化一些java日志记录,但是它不起作用。 我在属性文件中有以下行:格式化Java日志,java,logging,formatter,Java,Logging,Formatter,我试图通过属性文件格式化一些java日志记录,但是它不起作用。 我在属性文件中有以下行: java.util.logging.ConsoleHandler.formatter=mypackage.logging.LogFormatter java.util.logging.FileHandler.formatter=mypackage.logging.LogFormatter 我的自定义格式化程序LogFormatter在mypackage.logging中的位置 日志输出显示正在使用Simp
java.util.logging.ConsoleHandler.formatter=mypackage.logging.LogFormatter
java.util.logging.FileHandler.formatter=mypackage.logging.LogFormatter
我的自定义格式化程序LogFormatter在mypackage.logging中的位置
日志输出显示正在使用SimpleFormatter,而不是我的自定义格式化程序
如何通过日志属性文件使用自定义格式化程序
编辑:
我已经试过了所有的预制格式化程序,比如com.bea.logging.LogMessageFormatter、SimpleFormatter和XmlFormatter。它们很好用。只是我创建的任何新格式化程序都不起作用(扩展格式化程序)。这可能是类路径问题吗?LogManager将向System.err报告错误,System.err可能会重定向到日志文件。找到那个日志文件应该会对您有所帮助 如果您正在处理从中看不到的任何类,您将遇到和 要证明格式化程序在系统类路径中可见,请尝试以下代码:
Class.forName("mypackage.logging.LogFormatter", true, ClassLoader.getSystemClassLoader());
您可以将
sun.misc.URLClassPath.debug
系统属性设置为true
,或者在启动时使用-verbose:class
,以获取有关类加载的更多调试信息。日志管理器将向system.err报告错误,这可能会重定向到日志文件。找到那个日志文件应该会对您有所帮助
如果您正在处理从中看不到的任何类,您将遇到和
要证明格式化程序在系统类路径中可见,请尝试以下代码:
Class.forName("mypackage.logging.LogFormatter", true, ClassLoader.getSystemClassLoader());
您可以将sun.misc.URLClassPath.debug
系统属性设置为true
,或者在启动时使用-verbose:class
获取有关类加载的更多调试信息