文章作者: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。
参考资料: