【谈】程序中日志分级打印

2018-01-28  本文已影响98人  老猫头

大黄:谁提的代码,怎么日志全是logger.info,异常也是?(一通找svn版本最终发现是小志)
大黄:小志,为啥程序中日志打印不分级别呢?
小志:我分了的,都用info
大黄:那什么是日志分级呢?(无奈)
小志:……

网络提供
01

什么是日志分级

现在的程序工程都比较庞大,为了开发调试和生产问题跟踪排查,通常都会加入专业的日志框架,负责日志的打印。

Java工程常用的日志框架有log4j,log4j2,logback等。在这些日志框架中会提供日志级别,以响应不同的程序运行事件,记录日志。其中日志记录器(Logger)是日志处理的核心组件。 org.apache.log4j.Level类提供以下级别,但也可以通过Level类的子类自定义级别

Level 描述
ALL 各级包括自定义级别
DEBUG 指定细粒度信息事件是最有用的应用程序调试
ERROR 错误事件可能仍然允许应用程序继续运行
FATAL 指定非常严重的错误事件,这可能导致应用程序中止
INFO 指定能够突出在粗粒度级别的应用程序运行情况的信息的消息
OFF 这是最高等级,为了关闭日志记录
TRACE 指定细粒度比DEBUG更低的信息事件
WARN 指定具有潜在危害的情况

log4j具有5种正常级别(Level)。

日志记录器(Logger)的可用级别Level (不包括自定义级别 Level)
static Level DEBUG
DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。
static Level INFO
INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。
static Level WARN
WARN level表明会出现潜在错误的情形。
static Level ERROR
ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。
static Level FATAL
FATAL level指出每个严重的错误事件将会导致应用程序的退出。

另外,还有两个可用的特别的日志记录级别:

static Level ALL
ALL Level是最低等级的,用于打开所有日志记录。
static Level OFF
OFF Level是最高等级的,用于关闭所有日志记录。
日志记录器(Logger)的行为是分等级的。

02

为什么要日志分级

03

怎么合理安排日志打印

上一篇 下一篇

猜你喜欢

热点阅读