Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 比较log4j和Logger_Java_Logging_Log4j - Fatal编程技术网

Java 比较log4j和Logger

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+

JDK与Apache相比如何


对于针对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

我多次为这个问题苦苦挣扎;使用jdk7和jdk8;java日志记录非常快速和流畅,但在配置时我们唯一需要给程序员戴上帽子的东西


要登录到多个文件目的地,我们需要创建扩展FielHandler的signare类,并在属性文件中使用它们进行配置,这种复杂的操作似乎很耗时,但一旦获得挂起,效率和可靠性就非常高。

现有的log4j依赖性让我很想在此类项目中坚持使用它!几乎任何东西都比
java.util.logging
好,即使这意味着引入第三方依赖关系。在回顾了Logback之后,我想我会将它用于新项目,而不依赖于log4j,或者log4j。这个常见的问题正是我目前正在思考的(以及我为什么会在这里),但这个答案让我更加困惑。在这个答案中,“健壮”的确切含义是什么,为什么log4j更健壮?说到“更多功能”,有什么亮点吗?同样,在健壮性方面,什么是健壮的格式化系统?我承认我对java的登录是“新手”,但对于大多数中小型应用程序来说,这些实现似乎都太过分了。
log.debug("{} many ints, {} many longs", i, l);