使用log4J级别

Eag*_*ner 15 log4j

编码时使用log4j级别的最佳做法是什么?我的意思是我们何时使用INFO日志记录,何时使用DEBUG日志记录/ ERROR日志记录等.

Mik*_*nty 18

一般来说,我遵循以下准则:

  • 调查:低级别的东西.缓存命中,缓存未命中,打开数据库连接
  • 信息 :具有商业意义的事件 - 创建客户,收取cc ......
  • 警告 :可能是一个问题,但不会停止您的应用程序.电子邮件地址未找到/无效
  • 错误:意外问题.无法打开数据库连接.等等...


Yon*_*oni 10

我的基线始终是INFO级别等同于System.out,而ERROR等同于System.err.

调试 - 在这里您可以放置​​所有跟踪信息,特别是当您的"舒适度"为system.out时您不希望看到的信息.

信息 - 将此信息用于常规消息,进度消息,用于与应用程序相关的消息,但不用于跟踪.

警告 - 提供错误(可能是意外)或使用变通方法的警报,但应用程序仍可继续(套接字超时/重试,无效的用户输入等).

错误 - 警告阻止您的应用程序正常继续运行的问题,例如数据库已关闭,缺少引导程序配置.

编写库时常见的错误是使用ERROR级别来指示调用应用程序(使用库的代码)的问题,而不是指示库本身内的实际错误.例如,参见这个hibernate bug - > http://opensource.atlassian.com/projects/hibernate/browse/HHH-3731

这真的很烦人,因为来自ERROR级别的消息确实难以抑制,因此仅使用它们来表示您自己的代码存在问题.

全部 - 我真的不使用这个,它实际上与DEBUG或TRACE相同.


bma*_*ies 7

最好的学习方法就是举例.阅读一些开源的东西,比如哦,Tomcat或你应用领域的任何东西,看看你看到了什么.