Log4J 日志级别

17 Mar 2025 | 4 分钟阅读

日志级别用于对日志文件中的条目进行分类。但它们以一种非常特定的方式进行分类,即按紧急程度。该级别允许您分离以下类型的信息

  • 您可以在搜索期间过滤日志文件。
  • 您可以管理您记录的信息量。

系统中提供的信息量和类型,以及事件日志由配置文件中的 log4j 级别设置控制。每个日志消息都以消息的级别为前缀。

日志级别是 org.apache.log4j.Level 类的实例。

Log4j 具有以下日志级别

日志级别描述
ALL此级别开启所有级别的日志记录。它包括您定义的自定义日志级别。一旦配置了此级别并且根本不考虑这些级别,那么所有附加器都将开始将日志事件倾入日志文件中。
DEBUGDebug 大量用于在开发时调试应用程序。设置此级别后,每个日志消息都将出现在日志文件中。它主要属于开发人员。
INFOINFO 日志级别用于记录有关例行应用程序操作的消息。在实时环境中,系统管理员会观察 info 日志以确保当前系统上发生的情况,以及正常流程中是否存在任何问题。
WARNWARN 日志级别用于指示您可能存在问题,并且您已经检测到异常情况。也许您请求调用服务,在自动重试之前失败了几次。这是意料之外且不寻常的,但没有造成真正的损害,并且不知道问题是否会持续存在或复发。有人应该调查警告。
ERRORERROR 日志级别用于表示您必须立即调查的严重问题。不如 FATAL 严重,但仍然是一个问题。这仅仅意味着您的应用程序遇到了真正不希望的状态。例如,意外的格式化输入,数据库不可用。
FATALFATAL 日志级别,与 ERROR 一样,指定一个问题。但与 ERROR 不同的是,它指定了一个非常严重的错误事件。在正常情况下,您不会过多地考虑它们的存在,但一旦它们出现,就意味着非常糟糕的消息,甚至是应用程序的崩溃。
OFF这是可能存在的最高级别,旨在关闭日志记录。
TRACE这最近在版本 1.2 中引入,并包含更多信息以调试级别日志。

如何设置日志级别?

在 log4j.properties 中设置日志级别

在 log4j.xml 中设置日志级别

日志级别如何工作?

日志级别的运作实际上非常简单。在运行时,应用程序代码将创建日志记录请求,这些请求将具有一个级别。与此同时,日志框架已配置了一个日志级别,该级别充当阈值。如果请求级别位于配置级别或更高级别,它将被记录到配置的目标。如果没有,它将被拒绝。就这么简单。

让我们考虑以下级别的等级顺序

因此,例如,如果日志框架级别设置为 WARN,则将接受具有 WARN、FATAL 和 ERROR 级别的请求,而其余请求将被拒绝。

Log4J Logging Levels

在上图中,垂直标题显示了 LogEvent 的级别,而水平标题显示了与适当的日志配置关联的级别。

在第一列中,您将看到日志在每个级别中的工作方式。例如,对于 WARN,将显示 (FATAL, ERROR 和 WARN)。对于 OFF,将什么都不可见。

Log4j 级别示例

配置文件

Java 程序

现在编译并运行上面的程序,我们将在 c:/usr/home/log4j/log.out 文件中获得以下输出

Warn Message!
Error Message!
Fatal Message!

下一主题Log4J 日志方法