当前位置: 首页 > 面试题库 >

Java日志记录框架中的最新选项是什么?

翟棋
2023-03-14
问题内容

这个问题会定期被问到,但是我长期以来一直认为现有的Java日志记录框架过于复杂和设计过度,我想看看有什么新功能。

在我们当前的项目中,我遇到了一个更关键的问题,因为我们已经将JSON标准化为人类可读的数据编码,而且我看到的大多数日志记录框架都需要XML。我真的希望避免在我的应用程序配置的95%中使用JSON,而在其余部分中仅由于日志记录框架而避免使用XML(实际上,我讨厌XML用于文本标记以外的其他用途,这是其最初的预期目的)。

是否有任何新的,活跃的Java日志记录框架可以维护,功能强大,具有Maven存储库,可以在不重新启动应用程序的情况下进行重新配置并且不将您绑定到XML?


问题答案:

您有3种选择:

  • Log4J
  • java.util.logging(JUL)
  • Logback(Log4J的后继)

现在,让我们看看它们如何满足您的要求:

  1. 积极维护
  2. 相当强大
  3. 有一个Maven回购
  4. 可以重新配置而无需重新启动您的应用
  5. 不要将您绑定到XML

log4j

  1. ,没有积极维护
  2. 是的-
  3. 是的-
  4. 是的 -
  5. 是(使用Java属性文件,请参阅配置)。

java.util.logging (7月)

  1. 我会说-
  2. 由您自行决定 -
  3. 不适用-
  4. 是(通过JMX或LogManager#readConfiguration()-
  5. 是(使用属性文件)

登入

  1. 是的-
  2. 是的-
  3. 是的-
  4. 是的,通过JMX或自动扫描 -
  5. XML或Groovy中的配置文件

看来您必须做出一些让步(或找到我不知道的框架)。我会选择Logback,这就是现在发生的事情。



 类似资料:
  • 我第一次听说记号是在看书的时候: http://slf4j.org/faq.html 我检查了Logger对象的可用方法: null null 我从以下方面获得了更深入的信息: http://logback.qos.ch/manual/filters.html 但我还是一头雾水...请注意,我问的是为什么,而不是如何使用它们,所以这不是: null

  • 而且,根据这些文章,我发现Log4J2比Logback具有更好的性能: https://stackify.com/compare-java-logging-frameworks https://blog.overops.com/the-logging-olympics-a-race-between-todays-top-5-logging-frameworks 我的假设是,Pivotal选择Log

  • https://blog.overops.com/the-logging-olympics-a-race-between-todays-top-5-logging-frameworks log4j、slf4j和logback之间有什么区别? https://www.sitepoint.com/which-java-logging-framework-haves-the-performance/

  • 我需要一些帮助在Azure中记录Java应用: 1) 使用Azure作为PaaS,我创建了一个配置为使用Java8 Tomcat8的API应用程序。我正试图使用log4j2将应用程序日志记录与Tomcat日志(在一个单独的文件中)分开。据我所知,我有权限在D:\home中的任何地方写入。因此,我将尝试写入“d:\home\Logfiles\Application\”。因此,我创建了一个带有log4

  • 我正在寻找一种方法来集中分布式软件(用Java编写)的日志问题,这将非常简单,因为所讨论的系统只有一台服务器。但请记住,未来很可能会运行更多特定服务器的实例(并且需要更多的应用程序),因此必须有类似日志服务器的东西,它负责处理传入日志,并使支持团队能够访问这些日志。 目前的情况是,一些java应用程序使用log4j将其数据写入本地文件,因此,如果客户机过期出现问题,支持团队必须要求提供日志,这并不

  • 这使得日志难以读取、冗长和不必要的复杂(在大多数情况下,其他参数都不存在)。 我想处理所有的案件,只保留必要的数据。例子: 我可以手工编码: 它应该支持可选参数,用给定的字符串替换boolean/condition,支持用和分隔空格、逗号和单词。 也许有这样的图书馆吗?或者也许至少有一种更简单的编码方式? 如果不是这样,我就没有其他办法为日志记录中的消息编写自己的库了。此外,这种库将提供所有日志的