2015 年登录 Java - 正确配置的环境是什么样的?

Logging in Java in 2015 - what does a properly configured environment look like?

我的 Eclipse/Tomcat 项目是一堆乱七八糟的 slf4j、log4j、JULI、logback 等。结果我的控制台有大量来自各种库的无用消息,并且很难获得日志输出我想从我自己的代码。我已经使用 System.out 来完成任务。

服务器部署环境同样糟糕。

我想知道的是,我在哪里可以找到一个参考实现或清单,它概述了所有这些日志记录框架的正确配置应该是什么样子?

我不知道有任何示例,但您应该尝试使用 slf4j 而不是混合使用日志记录框架。您可以做的是使用 slf4j 的桥梁而不是实际的库。参见 slf4j documentation on bridges

JUL 略有不便,但您应该可以轻松控制它。

我发现我不喜欢上面的 "Internet wisdom",slf4j.org 的图表说明了这一点:它比需要的更复杂,并且没有解决技术债务.以下是我的建议:

  • 去掉 log4j。没有现代图书馆需要它,我的应用程序也不应该。
  • 将 slf4j 桥接到 jdk14。
  • 原生绑定 jcl 到 jdk14(不要使用 jcl-over-slf4j 桥)
  • 采用原生jdk14登录所有新代码

这似乎提供了最简单的配置,配置文件和指令的数量最少,惊喜也最少。