log4j - 日志级别

  • 简述

    org.apache.log4j.Level 类。您还可以通过对Level 类来自定义日志级别 。
    等级 描述
    ALL 所有级别,包括自定义级别。
    DEBUG 指定对调试应用程序最有用的细粒度信息事件。
    INFO 指定在粗粒度级别突出显示应用程序进度的信息性消息。
    WARN 表示潜在的有害情况。
    ERROR 指定可能仍允许应用程序继续运行的错误事件。
    FATAL 指定可能会导致应用程序中止的非常严重的错误事件。
    OFF 可能的最高等级,旨在关闭日志记录。
    TRACE 指定比 DEBUG 更细粒度的信息事件。
  • 级别如何运作?

    一个级别的日志请求 p 在具有级别的记录器中 qenabled如果 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!