log4j日志记录级别


org.apache.log4j.Level 水平。您还可以通过对 Level 级别进行子分类来定义自定义级别。

水平 描述
所有 所有级别包括自定义级别。
DEBUG 指定对调试应用程序最有用的细粒度信息事件。
错误 指定可能仍然允许应用程序继续运行的错误事件。
致命 指定非常严重的错误事件,可能导致应用程序中止。
信息 指定以粗粒度级别突出显示应用程序进度的信息性消息。
关闭 尽可能高的等级,旨在关闭日志记录。
跟踪 指定比DEBUG更细的信息事件。
警告 指定可能有害的情况。

级别如何工作?

级的日志请求 p 与水平记录器 q启用 如果p> = Q。这条规则是log4j的核心。它假定层次是有序的。对于标准级别,我们有ALL <DEBUG <INFO <WARN <ERROR <FATAL <OFF。

以下示例显示了我们如何过滤所有的DEBUG和INFO消息。此程序使用记录器方法setLevel(Level.X)设置所需的记录级别:

这个例子将打印除Debug和Info之外的所有消息:

import org.apache.log4j.*;

public class LogClass {
   private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class);

   public static void main(String[] args) {
      log.setLevel(Level.WARN);

      log.trace("Trace Message!");
      log.debug("Debug Message!");
      log.info("Info Message!");
      log.warn("Warn Message!");
      log.error("Error Message!");
      log.fatal("Fatal Message!");
   }
}

当您编译并运行 LogClass 程序时,它会生成以下结果 -

Warn Message!
Error Message!
Fatal Message!

使用配置文件设置级别

log4j为您提供了基于配置文件的级别设置,当您想要更改调试级别时,您可以免去更改源代码。

以下是一个示例配置文件,它将执行与上例中使用 log.setLevel(Level.WARN) 方法相同的任务。

# Define the root logger with appender file
log = /usr/home/log4j
log4j.rootLogger = WARN, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

现在让我们使用我们的以下程序 -

import org.apache.log4j.*;

public class LogClass {

   private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class);

   public static void main(String[] args) {

      log.trace("Trace Message!");
      log.debug("Debug Message!");
      log.info("Info Message!");
      log.warn("Warn Message!");
      log.error("Error Message!");
      log.fatal("Fatal Message!");
   }
}

现在编译并运行上面的程序,并在 /usr/home/log4j/log.out 文件中获得以下结果-

Warn Message!
Error Message!
Fatal Message!