我正在运行从 WAR 文件启动的独立 Jenkins 服务器。Jenkins 宣传自己使用 java.util.logging 框架进行日志记录。我按如下方式启动它:
java -Djava.util.logging.config.file=mycustomlogging.properties -jar jenkins.war > jenkins.log
mycustomlogging.properties 包含以下内容:
handlers=java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level=WARNING
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
我期望的是所有日志都进入 jenkins.log 并且只记录警告消息及以上。
jenkins.log 的内容与预期的一样,但我还看到创建了一个文件 ~/java0.log,其中包含 INFO 及更高版本的 XML 格式的日志语句。
当我在 mycustomlogging.properties 中只指定一个 ConsoleHandler(而没有 FileHandler)时,为什么会创建 java0.log?
我的属性文件是否与默认系统“合并”,它(可能)配置了一个写入 ~/java0.log 的 FileHandler?我的期望是指定自定义属性文件将完全覆盖默认系统行为。
或者服务器代码是否可能被编写为忽略系统属性并“无论如何”只记录到 ~/java0.log ?
如果重要的话,我在使用 Java 7 的 OS X 10.10 上。