Java 比较log4j和Logger
JDK与Apache相比如何Java 比较log4j和Logger,java,logging,log4j,Java,Logging,Log4j,JDK与Apache相比如何 对于针对Java6的新项目,哪一个更好?它们在灵活性和可配置性方面的比较如何?我从未使用过direct JDK logger,但对于一个新项目,我非常推荐, 作为log4j的后续产品而设计。你可以用它做一些非常好的事情: printf风格的参数构建,没有更多由if logger.isDebugEnabled()保护的混乱连接字符串 从 if (log.isDebugEnabled()) { log.warn (i + "many ints,"+ l+
对于针对Java6的新项目,哪一个更好?它们在灵活性和可配置性方面的比较如何?我从未使用过direct JDK logger,但对于一个新项目,我非常推荐, 作为log4j的后续产品而设计。你可以用它做一些非常好的事情:
- printf风格的参数构建,没有更多由if logger.isDebugEnabled()保护的混乱连接字符串
if (log.isDebugEnabled())
{
log.warn (i + "many ints,"+ l+"many longs");
}
到
- 非常灵活的配置,包括打印跟踪的配置。配置是xml,但他们的站点包含一个实用程序,该实用程序将从log4j配置生成xml配置,以帮助您开始
缺点-很多包都需要log4j,因为它非常常见,所以您的项目可能需要包含2个日志包。在我看来,JDK记录器的唯一用途是它是JDK的一部分,所以它不添加外部依赖项。如果只能在这两者之间选择,我会选择Log4j。它在附加器、知道它的人数(在我的轶事观察中)和更好的API(这也是主观的)方面仍然有更好的支持 现在开始一个项目,最诱人的事情就是使用slf4j并取消这个决定——只要更改类路径,就可以在slf4j下面插入不同的框架
也就是说,还有其他选项(比如Log5j)利用了最新的Java语言特性。我建议(从Log4j的一个主要程序员那里,就像slf4j一样)仔细看一看。对于一个新项目,我强烈推荐slf4j项目,它为几个记录器框架提供通用前端 Steve B描述的{}语法也出现在slf4j中(同一作者),因此无论后端如何,您都可以获得所有好处,并且仍然可以获得后端独立性。此外,还提供了一个log4j桥,因此现有代码可以透明地使用slf4j。真的很好 对于实际的后端,logback很好,但您可能已经投资了log4j-这很容易利用。我建议使用。我已经用了很多年了,没有任何问题。它是JDK的一部分,所以不需要额外的jar。log4j和JDK日志之间的区别很小,在我看来,使用log4j并不合理 标准API与log4j的对比 Java开发人员提出的一个常见问题是: 当Java提供API时,为什么要使用log4j日志框架 用于日志记录。JavaAPI可以通过(java.util.logging)访问吗 与标准日志API相比,Log4j具有以下优势:
- log4j提供健壮的日志记录
- log4j具有比标准日志API更多的可用特性
- 配置和使用log4j更容易
- log4j还有一个更加健壮的格式化系统
- 许多附加程序和处理程序可用于log4j
要登录到多个文件目的地,我们需要创建扩展FielHandler的signare类,并在属性文件中使用它们进行配置,这种复杂的操作似乎很耗时,但一旦获得挂起,效率和可靠性就非常高。现有的log4j依赖性让我很想在此类项目中坚持使用它!几乎任何东西都比
java.util.logging
好,即使这意味着引入第三方依赖关系。在回顾了Logback之后,我想我会将它用于新项目,而不依赖于log4j,或者log4j。这个常见的问题正是我目前正在思考的(以及我为什么会在这里),但这个答案让我更加困惑。在这个答案中,“健壮”的确切含义是什么,为什么log4j更健壮?说到“更多功能”,有什么亮点吗?同样,在健壮性方面,什么是健壮的格式化系统?我承认我对java的登录是“新手”,但对于大多数中小型应用程序来说,这些实现似乎都太过分了。
log.debug("{} many ints, {} many longs", i, l);