如何设定日志输出级别?用 Log4j 就能搞定!

Posted 研发云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设定日志输出级别?用 Log4j 就能搞定!相关的知识,希望对你有一定的参考价值。

日志数据作为 IT 系统重要的一种数据源

一直是分析问题、解决问题最直接的手段

越来越多的企业已经认识到日志的重要性

而合理的日志输出设置

能精简日志文件的体积

从而减少对系统造成的运行和存储负担

还能简化调试和运维流程

并显著提高定位问题的效率

Log4j 在这方面就有着亮眼的功效

如何设定日志输出级别?用 Log4j 就能搞定!

Log4j 是一个用 Java 编写的可靠,快速和灵活的日志框架(API),它在 Apache 软件许可下发布。通过使用 Log4j,用户可以控制每一条日志的输出格式和目的地;通过定义每一条日志信息的级别,用户还能够更加细致地控制日志的生成过程。


如何设定日志输出级别?用 Log4j 就能搞定!

Log4j 的三个组成部分

日志记录器(loggers):负责捕获记录信息,并对日志信息进行级别限制。


输出端(appenders):负责发布日志信息,指定了日志将打印到控制台还是文件中。


日志格式化器(layout):负责格式化不同风格的日志信息。


如何设定日志输出级别?用 Log4j 就能搞定!

日志输出级别

Log4j 有8个日志级别(log level)可供设置

以便让用户控制日志的输出规模

并对其中的异常信息事件进行甄别

如何设定日志输出级别?用 Log4j 就能搞定!

OFF:是最高等级的,会关闭所有日志记录,也就是不输出任何日志信息。


FATAL(致命的错误):只输出会导致应用程序退出的严重错误事件的日志


ERROR(错误):该日志记录的错误事件虽然存在,但不影响系统的继续运行。


WARN(警告):该日志所记录的事件可能导致潜在的错误发生。


INFO(信息):用于生产环境中输出程序运行的一些重要信息(其消息在粗粒度级别上突出强调应用程序的运行过程)。


DEBUG (调试):用于在开发调试过程中输出一些运行信息(其消息在细粒度级别上对调试应用程序是非常有帮助的)。该级别日志的主要作用是对系统每一步的运行状态进行精确的记录。通过该级别日志,可以查看某一个操作每一步的执行过程,可以准确定位是何种操作、何种参数、何种顺序导致了某种错误的发生。可以保证在不重现错误的情况下,也可以通过 DEBUG 级别的日志对问题进行诊断。


TRACE(跟踪):与 DEBUG 相比,该日志输出将更细致化地记录下应用程序运行时的细粒度信息事件。


ALL:是日志输出的最低等级,意味着输出所有日志记录

如何设定日志输出级别?用 Log4j 就能搞定!

FATAL 、 ERROR 、 WARN 、 INFO 、 

DEBUG 这五个级别已经可以满足基本使用需求

Log4j 不推荐用户自定义日志输出级别

而且只会输出高于或等于所设置级别的日志

也就是说,设置的日志等级越高

打印出来的日志就越少

如果设置级别为INFO

则优先级高于等于 INFO 级别的日志信息

(如:INFO、WARN、ERROR)

将可以被输出

小于该级别的如 DEBUG 将不会被输出


日志文件不宜过大

其实,过大的日志文件对于日志监控、问题定位等都会带来不便,因此可以灵活变通设置。比如在项目上生产环境时,可以把 DEBUG 的日志级别重新调为 WARN 或者更高,以避免产生大量日志。


另外,用户还可以对日志文件进行切分,切分时应该根据日志量来决定日志文件分割的形式(按天还是按小时),其原则是方便开发或运维人员能快速查找日志。


还有需要注意的是,为了防止日志文件将整个磁盘空间占满,用户需要定期对日志文件进行删除。

如何设定日志输出级别?用 Log4j 就能搞定!

长|按|二|维|码|关|注

获取更多产品介绍及业界动态

如何设定日志输出级别?用 Log4j 就能搞定!研发云微信公众号
移动Labs公众号

 研·发·云


以上是关于如何设定日志输出级别?用 Log4j 就能搞定!的主要内容,如果未能解决你的问题,请参考以下文章

如何使用log4j输出单个级别的log到指定文件

如何让log4j日志只输出错误信息

怎么通过log4j文件控制jar包里面的日志输出

(转)log4j——如何控制不同级别的日志信息的输出?

log4j——如何控制不同级别的日志信息的输出?

log4j将不同的日志级别输出到tomcat下