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_Java_Logging_Log4j_Java.util.logging - Fatal编程技术网

Java日志与Log4J

Java日志与Log4J,java,logging,log4j,java.util.logging,Java,Logging,Log4j,Java.util.logging,将log4j库添加到Java5项目中只是为了记录日志是否仍然值得 让我们说一些例外的文件与一些不错的滚动设置。 或者标准的util.logging工具也能完成这项工作吗 您觉得怎么样?我想您可能对util.logging很满意,可以满足您描述的需求 要获得好的决策树,请查看 问题一: 您是否预计需要Log4j拥有的任何JUL没有的智能处理程序,例如SMTPHandler、NTEventLogHandler或任何非常方便的文件处理程序 问题二: 您是否认为自己想要频繁切换日志输出的格式?您是否需要

将log4j库添加到Java5项目中只是为了记录日志是否仍然值得 让我们说一些例外的文件与一些不错的滚动设置。 或者标准的util.logging工具也能完成这项工作吗


您觉得怎么样?

我想您可能对util.logging很满意,可以满足您描述的需求

要获得好的决策树,请查看

问题一: 您是否预计需要Log4j拥有的任何JUL没有的智能处理程序,例如SMTPHandler、NTEventLogHandler或任何非常方便的文件处理程序

问题二: 您是否认为自己想要频繁切换日志输出的格式?您是否需要一种简单、灵活的方法来实现这一点?换句话说,您需要Log4j的模式布局吗

问题三: 在生产环境中编译和部署应用程序后,您是否预计到一定需要更改应用程序中复杂日志记录配置的能力?您的配置是否听起来像,“此类严重信息通过电子邮件发送给支持人员;来自类子集的严重消息被记录到服务器上的syslog deamon中;来自另一类子集的警告消息被记录到网络驱动器a上的文件中;然后来自世界各地的所有消息都会被记录到网络驱动器B“”上的一个文件中?您是否看到自己每隔几天就对其进行一次调整

如果你能对以上任何一个问题回答“是”,那么就使用Log4j。如果你对所有问题都回答“否”,那么JUL就足够了,它已经方便地包含在SDK中了


这就是说,现在几乎所有的项目都包含了log4j,如果只是因为其他库使用它的话。

我会选择log4j。log4j的可能性一点也不过时!

我建议使用它作为日志记录接口。这样,您就可以随时灵活地切换日志记录实现t您不需要更改任何代码。

我建议您使用(SLF4J)。它支持不同的提供程序,包括Log4J,可以用作Apache Commons日志记录的替代品。

Log4J已经存在很长时间了,而且它工作得很好。我没有科学研究支持它,但根据我在大量客户机上看到的情况,它很容易成为我所看到的日志记录框架,比任何其他框架都更常用呃,它已经存在很长时间了,还没有被下一个大型日志框架所取代,这说明了一些事情

它的设置非常简单,并且很容易学习基本的附加器(输出)。有一整套可用的主机附加器,包括:

  • 主控台
  • DailRollingFileAppender
  • 外部旋转式悬挂器
  • 文件追加器
  • JDBCAppender
  • JMSAppender
  • 恩特文特洛根佩德
  • 滚动文件追加器
  • SMTPAppender
  • 鞋垫
  • 系统日志附加器
  • TelnetAppender
  • 书写者
  • 另外,每个appender都有很大的灵活性,允许您专门控制日志中的输出内容

    注意,除了log4j之外,当我使用apachecommons日志记录时,我还遇到了一系列的类加载器问题。这只适用于一个特定的应用程序,但我发现单独使用log4j比使用commons日志记录这样的抽象层时提供的灵活性更简单

    有关详细信息,请参阅本文 :


    祝你好运!

    总体而言,log4j是一个更好的包,并且没有java.util.logging所包含的一些问题。我认为直接使用log4j比使用commons日志更容易。

    java.util.logging提供了一个全面的日志包,没有其他一些日志包提供的过重负担。

    有什么问题吗Commons Logging?@Bart van Heukelom和comment Upvorters-阅读@Stephen C:感谢您提供的信息,尽管我不久前了解到了这一点,现在只要有可能就使用SLF4J。(顺便说一句,我的评论是一个真正的问题,不是保守的评论)@Bart,Commons Logging使用动态发现要使用的包。SLF4J使用(或曾经使用)需要在后端加载类。另外,默认情况下,它包含在后端中,并且由Java本身使用(因此无论如何,您都可以使用它!)请参阅,以了解需要考虑的众多log4j 1.2锁定问题。您能更具体地说明java.util.logging存在的问题吗?当然,比如记录同步方法的开销:请参阅和基于调查问卷的优秀答案。根据需要,每个人都有自己的答案。
    log4j vs java.util.logging
    链接不再有效。干杯-更改我想买一台回程机器。