java工程log4j_java工程集成log4J

log4j是Java开发平台中的日志管理工具,是Apache基金会的一个开源项目,它的作用可以简单的理解为在开发过程中替代system.out的功能。

1、在工程中集成log4j:

(1)在官网http://logging.apache.org/log4j/2.x/download.html中下载jar包并添加到build path中

(2)修改配置文件log4j.properties,可以百度一下,这种资源很多,我的配置文件如下:

log4j.rootLogger =DEBUG,console,file,D,E #设置日志级别和日志输出目的地,级别只能有一个,目的地可以由多个

log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.appender.console.layout=org.apache.log4j.PatternLayout

log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

#warn:before write the file log.log, clear it

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender

log4j.appender.file.file=./log.log

log4j.appender.file.Append = false #注意:每次写文件前,清空,做试验用,默认值为true

log4j.appender.file.DatePattern='.'yyyy-MM-dd

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

#log4j.appender.file.layout=org.apache.log4j.TTCCLayout

#org.apache.log4j.TTCCLayout do not have the property such as ConversionPattern

#test output different log information to seperate file

#set the DEBUG level information output to the file debug.log

#warn:before write the file debug.log, clear it

log4j.appender.D=org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.file=./debug.log

log4j.appender.D.Append = false #注意:每次写文件前,清空,做试验用,默认值为true

log4j.appender.D.Threshold = DEBUG #只有比DEBUG级别高的日志才会输出到debug.log文件中,相当于五种类型的日志都会保存到debug.log中

log4j.appender.D.DatePattern='.'yyyy-MM-dd

log4j.appender.D.layout=org.apache.log4j.PatternLayout

log4j.appender.D.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

#set the ERROR level information output to the file debug.log

#warn:before write the file error.log, clear it

log4j.appender.E=org.apache.log4j.DailyRollingFileAppender

log4j.appender.E.file=./error.log

log4j.appender.E.Append = false #注意:每次写文件前,清空,做试验用,默认值为true

log4j.appender.E.Threshold = ERROR #只有比ERROR级别高的日志才会输出到error.log文件中,相当于error.log文件只保存FATAL和ERROR类型的日志

log4j.appender.E.DatePattern='.'yyyy-MM-dd

log4j.appender.E.layout=org.apache.log4j.PatternLayout

log4j.appender.E.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n(3)

优先级说明:

log4j中有5种优先级,需要注意的是优先级数据越小其优先级越高(0最高,7最低),当设置某种优先级后,比其高的级别日志都会输出,例如,如果在

log4j.rootLogger =DEBUG,console,file,D,E设置的为DEBUG,则所有级别的日志都会输出,因为DEBUG级别最低。这点在

实现不同级别的日志信息写到不同的文件时非常重要。

FATAL 0

ERROR 3

WARN 4

INFO 6

DEBUG 7

2、log4j的初始化

在网上搜了下,发现有三种方式进行初始化:

(1)自动加载配置文件,这个对配置文件的存放位置有要求,我这里的是Java se工程,配置文件放在src目录下;若是放在工程根目录下,加载失败,会出现如下错误:

log4j:WARN No appenders could be found for logger (Log4jTest).

log4j:WARN Please initialize the log4j system properly.(2)

手动加载配置文件,在main方法里利用语句(注意根据配置文件的路径自己调整):

PropertyConfigurator.configure("./log4j.properties");(3)不用配置文件,直接在代码中设置。

关于log4j的初始化过程,有篇博客以xml格式的配置文件为例,从源码级别上做了解释http://tiangu.iteye.com/blog/1153777

3、log4j实现不同类型的日志输出到不同的文件

这里必须设置log4j.appender.xxx.Threshold属性,只有比该级别高的日志才会输出到该日志文件中。

详见上面的配置文件注释。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值