说明:Log4j的日志是有级别的,从低到高顺序为:ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF,当定义了日志级别为WARN后,那么其比它高的级别(ERROR < FATAL)会打印出来。

基本使用方法:

Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。

日志信息的优先级

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 final 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 final 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://blog.csdn.net/rogger_chen/article/details/50587920

http://www.cnblogs.com/castlehappiness/p/4339813.html(以上内容转自此篇文章)

最新文章

  1. 混合框架中Oracle数据库的还原处理操作
  2. [地图SkyLine二次开发]框架(4)
  3. Android 5.0新特性了解(二)----RippleEffect
  4. 图像分类之特征学习ECCV-2010 Tutorial: Feature Learning for Image Classification
  5. 性能测试-Jmeter
  6. iOS NSData
  7. KafkaSpout分析:配置
  8. Entity Framework Code First级联删除
  9. HTML5课程大纲/学习路线
  10. Bzoj 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛 传递闭包,bitset
  11. nRF905 - 系列示意图
  12. ScheduledFuture和RunnableScheduledFuture详解
  13. html中几种常见长度单位介绍
  14. 从一道面试题探究 Integer 的实现
  15. BUAA_OO Summary——多项式求导问题
  16. JS的判断字符/元素是否存在数组列表
  17. MegaCli 简易使用介绍
  18. Win10下JDK环境变量的设置
  19. 基于SSL的MySQL主从
  20. NPOI之Excel——设置单元格背景色

热门文章

  1. 在ubuntun虚拟机里安装goLang语言编程环境
  2. 【算法】最长回文子串 longest palindrome substring
  3. Python 循环结构语句
  4. 如何在一次请求中通过JS中获取Url中的参数
  5. 查看本机的ip地址
  6. centos nginx uwsgi django
  7. ios7与ios6UI风格区别
  8. 读懂CommonJS的模块加载
  9. 【EL&amp;JSTL】学习笔记
  10. python:零散记录