Java中的Log

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

在软件中,Log是必不可少的,Log既可以用来调试程序,又可以查看程序的执行顺序及执行时间,还可以在出现问题时用来查看问题的出现点。在Java中有许多Log库,有Java自带的,也有开源的,常用的Log有Log4j,Slf4j等。不管日志库有多少,但一般都提供五个级别(优先级从低到高)的Log:

1. Debug

通常情况下,Debug的级别最低(当然还有比它低的——Trace,All),一般来说,在应用实际上线运行时,都是不输出Debug Log的,因此可以在调试程序时使用,写程序时应该养成输出Log的良好习惯,这样可以在程序出现问题时及时的定位到错误的位置,同时别人阅读你的代码时,也很容易明白程序的运行流程,只要看一下Log就能明白。

SLF4J官方文档的定义:DEBUG Level指定细粒度信息事件,对于调试应用程序是最有用的。

2. Info

Info是用来反映系统的当前运行状态信息的,因此这里输出的信息必须是有意义的,常用来输出业务处理过程中的一些关键信息或业务执行的信息,也常用来输出对系统影响较大的一些信息,例如系统升级等。系统声明周期事件(启动、停止)、Session的生命周期事件(登录、退出等)、典型的业务逻辑异常(登录时登录失败)都从Info来输出。Info级别是应用实际上线运行时采用的Log级别。

SLF4J官方文档的定义:INFO Level指定粗粒度的强调应用运行过程信息的消息。

3. Warn

Warn代表一个未预料到的技术或业务事件发生了,用户可能会受到影响,但可能不需要立即进行处理,调用时不会立即受到影响,但技术支持人员需要尽快检查这些问题。基本上Warn问题需要进行检查,但可能不需要立即处理。

SLF4J官方文档的定义:WARN Level指定潜在的有害情况。

4. Error

Error代表发生了必须马上处理的错误,客户可能正受到错误影响,错误出现以后可以允许程序继续运行。

SLF4J官方文档的定义:ERROR Level指定错误事件,但系统仍能继续运行。

5. Fatal

Fatal表示发生了最严重的错误,整个服务可能已经停止,『两点理论』可以应用在这个地方,如果半夜两点发生了这个错误,你必须立马起来并修复的错误,就可以使用Fatal级别。

SLF4J官方文档的定义:FATAL Level指定非常严重的错误事件,并假定程序运行已经终止。

6. 其它的Log级别

OFF:OFF表示最高级别的Log,表示Log都要关闭。

TRACE:比Debug级别还低的Log,表示比Debug粒度还细的信息。

ALL:最低级别的Log,表示打开Log。

参考资料:

  1. http://www.slf4j.org/apidocs/org/apache/log4j/Level.html

  2. http://stackoverflow.com/questions/7839565/logging-levels-logback-rule-of-thumb-to-assign-log-levels

  3. http://www.cnblogs.com/shwen99/archive/2007/12/29/1019853.html

  4. http://www.bkjia.com/Javabc/1021481.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 10,437评论 0 6
  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 10,500评论 1 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,523评论 19 139
  • The Simple Logging Facade for Java (SLF4J) serves as a si...
    闪亮亮的简书阅读 2,118评论 0 0
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,084评论 6 342