Logging 级别

org.apache.Log4j.Level 类定义了日志级别,您可通过继承 Level 类定制自己的级别。

级别 描述
ALL所有级别,包括定制级别。
DEBUG指明细致的事件信息,对调试应用最有用。
ERROR指明错误事件,但应用可能还能继续运行。
FATAL指明非常严重的错误事件,可能会导致应用终止执行。
INFO指明描述信息,从粗粒度上描述了应用运行过程。
OFF最高级别,用于关闭日志。
TRACE比 DEBUG 级别的粒度更细。
WARN指明潜在的有害状况。

级别是如何工作的?

在一个级别为 q 的 logger 对象中,一个级别为 p 的日志请求在 p >= q 的情况下是开启的。该规则是 Log4j 的核心,它假设级别是有序的。对于标准级别,其顺序为:ALL < 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 提供了基于配置文件设置日志级别的功能,当您需要改变调试级别时,不用再去修改代码了。

下面这个例子和上面那个例子功能一样,不过不用使用 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!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值