Log4J配置文件用法

配置根Logger

log4j.rootLogger=[level],[appenderName],[appenderName],...


当[level]设置为ALL时,则输出所有级别的日志,而当[level]设置为INFO的时候,则输出优先级相等或高于INFO级别的日志,以此类推,这里再次说明log4j里的优先级定义从低至高为: DEBUG 、INFO 、WARN 、ERROR 、FATAL。定义为OFF时则不做任何输出。

设置一个appender

log4j.appender.[NAME]=org.apache.log4j.ConsoleAppender


这里的[NAME]就是上句[appenderName]所选的名称,可以理解为日志输出目的地的名字,名称可以随意取,我们知道日志可以输出到多个地方,比如可以输出到控制台,生成日志文件等。

log4j提供以下几种appender:

//控制台
org.apache.log4j.ConsoleAppender
//文件
org.apache.log4j.FileAppender
//可以设置目标文件的大小,当文件到达这个尺寸的时候自动生成一个新的文//件,比如:log.txt、log1.txt......
org.apache.log4j.RollingFileAppender
//每天产生一个日志文件
org.apache.log4j.DailyRollingFileAppender
//将日志信息以流的形式发送到任意指定的地方
org.apache.log4j.WriterAppender


设置日志文件的布局

log4j.appender.A1.layout=org.apache.log4j.PatternLayout
//以HTML格式布局
org.apache.log4j.HTMLLayout
//可灵活指定布局模式
org.apache.log4j.PatternLayout
//简单的布局模式(包含日志信息的级别和字符串)
org.apache.log4j.SimpleLayout
//包含日志产生的时间、线程、类别等等信息
org.apache.log4j.TTCCLayout


设置输出样式

log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
log4j采用类似C语法的格式化输出方式。

%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2006年8月8日 17:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。比如本例为com.log4jdemo.Test


下面我们来看一下完整的配置文件:

log4j.rootLogger=ALL,A1,R
#=======定义appender为控制台=========#
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%l]-[%p] %m%n
#========定义appender为RollingFileAppender=========#
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=../logs/log.txt
log4j.appender.R.MaxFileSize=512KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] [%c] [%p] - %m%n


我们可以看到,这里定义了两个输出目的地,一个是控制台,另一个是生成一个日志并且当日志大小大于512KB的时候自动穿件一个新的备份日志。注意log4j.rootLogger=ALL,A1,R,这里可以选择如何将日志信息输出到什么地方,也就是说当项目不需要再向控制台输出的时候,我可以将rootLogger的A1去掉;如果当不需要输入或记录调试信息(debug)的时候,可以将All改为INFO,很方便吧?
做完这些,我们第一个Log4j的应用例子已经完成。

[quote]http://blog.163.com/rui_uk/blog/static/2695963120073352040895/[/quote]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值