java - 配置 `java.util.logging`最简单的方法是什么

标签 java java.util.logging

我有一个第 3 方开发的大型复杂应用程序,充满了 java.util.logging.Logger#finer() 调用。

通常我使用 log4j 和 sl4j 进行日志记录,我对 java.util.logging 了解不多,更不了解所有配置细节和可能性。

关于“java.util.logging”的每一个谷歌都指向关于流处理程序、格式化程序、级别的完整解释。每个人都认为我真的很关心所有这些东西(实际上这是一个合理的假设)。但我一点也不在乎。

我对按文件分离日志或文件轮换、压缩、电子邮件、远程日志等并不真正感兴趣。我也不关心日志级别和消息格式的刺激。

我想做的就是运行这个应用程序,并将所有可用的日志消息输出到标准输出。

有没有简单直接的方法可以做到这一点?

类似于 jvmargs -Djava.util.logging.level=FINEST -Djava.util.logging.to=stdout。 或者也许一些简单的文件被放入类路径中的某个位置?

最佳答案

All I want to do is to run this application with all available log messages spitting to stdout

不要在生产中这样做,但这是一种快速、简单、hacky 的方式:

编辑位于 java/conf 中的 logging.properties 文件。例如。/usr/lib/jvm/default-java/conf/logging.properties

该文件设置为将 ConsoleHandler 附加到根记录器,这就是您想要执行的操作。您只需调整级别即可查看输出。这是一个全局性的变化,所以请注意。

编辑该文件并:

  • 更改 .level= INFO -> .level=ALL
  • java.util.logging.ConsoleHandler.level = INFO 更改为 java.util.logging.ConsoleHandler.level = ALL
  • 保存更改并重新启动您的应用。

推荐方式:

大多数 JVM 不在您的控制范围内(生产/开发服务器),因此您可以将该文件复制到您拥有的位置并使用 java.util.logging.config.file 系统属性。

例如-Djava.util.logging.config.file=/home/myuser/myapp/logging.properties

这样您就可以自由地对您的程序进行本地更改,而不是对机器进行全局更改。

关于java - 配置 `java.util.logging`最简单的方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73223813/

相关文章:

javac 不产生输出

java - 获取给定模式的所有索引信息——db2

java - 45000 毫秒后,端口 7055 上出现 Selenium 错误 : Unable to connect to host 127. 0.0.1。火狐控制台输出?

java - 登录 Play 非阻塞?

java - 如何使用 Simple Formatter 修改日志格式?

java - 如何将自定义日志处理程序添加到 Google App Engine?

java - 包含 "bab"的 boolean 函数

Java java.util.logging 记录器与 HSQLDB 结合的奇怪行为

java - 如何在 RapidMiner 扩展中记录第 3 方输出?

java - 当原始日志被锁定时,FileHandler 会生成额外的日志文件