log4j日志记录级别

转载 2015年11月18日 17:11:17

org.apache.log4j.Level类提供以下级别,但也可以通过Level类的子类自定义级别。

Level 描述
ALL 各级包括自定义级别
DEBUG 指定细粒度信息事件是最有用的应用程序调试
ERROR 错误事件可能仍然允许应用程序继续运行
FATAL 指定非常严重的错误事件,这可能导致应用程序中止
INFO 指定能够突出在粗粒度级别的应用程序运行情况的信息的消息
OFF 这是最高等级,为了关闭日志记录
TRACE 指定细粒度比DEBUG更低的信息事件
WARN 指定具有潜在危害的情况

日志级别是如何工作?

级别p的级别使用q,在记录日志请求时,如果p>=q启用。这条规则是log4j的核心。它假设级别是有序的。对于标准级别它们关系如下:ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF。

下面的例子明确指出如何可以过滤所有的DEBUG和INFO消息。这个程序使用记录并执行setLevel(Level.X)方法来设置所需的日志记录级别:

这个例子将打印,除了调试和信息的所有消息:

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!

LOG4J日志级别详解

日志记录器(Logger)是日志处理的核心组件。 org.apache.log4j.Level类提供以下级别,但也可以通过Level类的子类自定义级别。 ...
  • duruiqi_fx
  • duruiqi_fx
  • 2016年09月28日 11:39
  • 27358

开源日志记录工具log4j 使用

一、日志的应用场景 日志适用于解决这样的问题:例如,我们根据控制台输入被除数和除数,然后计算并输出商,不同的异常被正确地捕获,并在控制台上输出相应信息,而有时,我们还希望以文件的形式记录这些异常信息,...
  • zxllynu
  • zxllynu
  • 2017年08月09日 20:52
  • 224

为log4j增加自定义级别

  并非在项目应用中原先的几个级别不够用了,通常的info,warn,debug ,error,fatal已经可以满足一般的应用,而且log4j也是不推荐用户自定义级别的。  由于在我们的搜索引擎里要...
  • kauu
  • kauu
  • 2007年09月26日 10:46
  • 5615

log4j中对Exception的记录

这段时间折腾利用AOP来做简易的Exception处理框架的事。事因如下: 这是一个在Service层自定义的异常,用于将Service层的异常进行包装,再往高层抛出(如Action层) publ...
  • oathevil
  • oathevil
  • 2012年03月06日 13:45
  • 8796

log4j级别输出 控制

我们知道: log4j.logger.XX cover ==> log4j.rootLogger log4j.appender.XX.Threshold决定了最低接收级别 也就是说roo...
  • z69183787
  • z69183787
  • 2014年11月21日 16:04
  • 1770

log4j 日志输出级别

官方网址: http://logging.apache.org/log4j/1.2/ 参考:http://blog.csdn.net/maxracer/article/details/7920997 ...
  • qq_27088383
  • qq_27088383
  • 2016年02月22日 10:06
  • 4967

Log4j日志等级

日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。 日志记录器(Logger)的可用级别Level (不包括自定义级别 Level), static Leve...
  • lijunchao1
  • lijunchao1
  • 2016年05月25日 16:48
  • 1456

log4j自定义新的级别

为不用和其他级别冲突,有时候需要自己定义级别,查看源码,代码如下: package org.apache.log4j; /** Refrain from using this class d...
  • lirenzuo
  • lirenzuo
  • 2017年05月15日 12:59
  • 3617

Log4j针对不同包指定level

Log4j针对不同包指定level: 一般在生产环境中应用系统,日志级别调整为INFO以避免过多的输出日志。 但某些时候,需要跟踪具体问题,那么就得打开DEBUG日志。 但是如果打开lo...
  • zlfprogram
  • zlfprogram
  • 2015年01月24日 17:43
  • 4056

Log4j 日志级别 详解~

日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。 日志记录器(Logger)的可用级别Level (不包括自定义级别 Level), 以下内容就是摘自log4...
  • Shb_derek
  • Shb_derek
  • 2013年04月23日 11:06
  • 2012
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:log4j日志记录级别
举报原因:
原因补充:

(最多只允许输入30个字)