当前位置: 首页 > 文档资料 > log4j 中文教程 >

记录级别(Logging Levels)

优质
小牛编辑
139浏览
2023-12-01

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

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

级别如何工作?

如果p“= q,则enabled具有级别q的记录器中的级别p日志请求。 这条规则是log4j的核心。 它假定级别是有序的。 对于标准级别,我们有“DEBUG”INFO“WARN”ERROR“FATAL”OFF。

以下示例显示了我们如何过滤所有DEBUG和INFO消息。 该程序使用logger方法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!