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!

转自:http://www.yiibai.com/log4j/log4j_logging_levels.html

最新文章

  1. FBX Software Development Kit
  2. struts2回显指定的错误信息
  3. Unsupervised Classification - Sprawl Classification Algorithm
  4. 华为访问列表traffic-policy案例
  5. android Camera使用(一)
  6. React开发项目例子
  7. C# and Redis,安装作为服务
  8. [LeetCode#256] Paint House
  9. GroundworkCSS ♥ Tables
  10. ajax基础部分
  11. Oracle查询优化改写--------------------单表查询
  12. python之文件的读写和文件目录以及文件夹的操作实现代码
  13. KiB 、十进制单位转换 、二进制单位转换
  14. [CF575B]Bribes
  15. org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class &#39;com.microsoft.sqlserver.jdbc.SQLServerDriver &#39;
  16. 关于如何获取Google 官方 NavgationView中的控件的方法
  17. 极限编程核心价值:勇气(Courage)
  18. sqlserver自定义函数与存储过程的区别 实例详解
  19. TEXTMETRICW 结构记录
  20. 【BZOJ1096】[ZJOI2007]仓库建设 斜率优化

热门文章

  1. fzu 2128
  2. [TS-A1486][2013中国国家集训队第二次作业]树[树的重心,点分治]
  3. C++ premier 中文版 学习笔记(第五章 表达式)
  4. 动物统计加强版 Trie 树
  5. MyBatis 3在XML文件中处理大于号小于号(&lt;&gt;)的方法(转)
  6. MyEclipse10及插件安装教程(附安装包和破解文件)
  7. 从头认识java-15.6 队列(Queue)
  8. Exchange 2013 的会议室邮箱用户一直无法正常登陆。
  9. 抓包分析TCP的三次握手和四次握手
  10. Hadop使用Partitioner后,结果还是一个文件,怎样解决??