log4j 配置

示例:log4j.properties
#\u8bbe\u7f6e\u7ea7\u522b\u548c\u76ee\u7684\u5730
log4j.rootLogger=info,consoleAppender,appender2
log4j.logger.System.err=error, appender2
log4j.logger.System.out=error, appender2

#\u8f93\u51fa\u5230\u63a7\u5236\u53f0
log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.Threshold=info
log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss:SSS}][%C-%M] -%m%n

#\u8f93\u51fa\u5230\u6587\u4ef6(\u6587\u4ef6\u5927\u5c0f\u5230\u8fbe\u6307\u5b9a\u5c3a\u5bf8\u7684\u65f6\u5019\u4ea7\u751f\u4e00\u4e2a\u65b0\u7684\u6587\u4ef6)
log4j.appender.appender2=org.apache.log4j.RollingFileAppender
log4j.appender.appender2.Threshold=info
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.appender2.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss:SSS}][%C-%M] -%m%n
#\u8bbe\u7f6e\u6587\u4ef6\u8f93\u51fa\u8def\u5f84
log4j.appender.appender2.File=/opt/SPG2800/webportal_log/ftp_log.log
log4j.appender.appender2.MaxFileSize=2000kb
log4j.appender.appender2.MaxBackupIndex=10000


1、log4j.rootLogger
定义全局性的根日志,即所有的类,所有的方法都会输出到该日志。
log4j.rootLogger=info,stdout,fileout
info 表示级别(不区分大小写),可以为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL。
优先级 FATAL>ERROR>WARN>INFO>DEBUG
如类别为INFO,DEBUG将被屏蔽,WARN及更高级别会输出。
stdout,fileout 就是指定日志信息输出到哪个地方。您可以同时指定多个输出端。

2、log4j.logger
定义子日志,可以给指定的包下面定义独立的日志,如:
log4j.logger.com.lwt=INFO,testout
指定com.lwt包下的所有类的等级为INFO。输出端为testout
还可以给struts2、ehcache等定义日志,如:
log4j.logger.com.opensymphony.oscache=ERROR
log4j.logger.net.sf.navigator=ERROR
log4j.logger.org.apache.commons=ERROR
log4j.logger.org.apache.struts=WARN

3、log4j.additivity
如有:
log4j.rootLogger=INFO,stdout,fileout
log4j.logger.com.lwt=INFO,testout
默认com.lwt包下的输出不仅是testout,还会输出到rootLogger里的stdout,fileout
若想让取消子日志对父日志(rootLogger)的继承关系,则添加下行即可:
log4j.additivity.com.lwt=false

2、log4j.appender.stdout.Threshold
给日志stdout进行再次过滤,比如:
log4j.appender.consoleAppender.Threshold=error
过滤级别不能低于定义日志的级别(info),否则无效。

3、把系统标准输出到日志
log4j.logger.System.err=error, fileout
log4j.logger.System.out=error, fileout

4、log4j.appender.stdout
对上面stdout输出端的类型定义,如:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
输出类型可以是:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.net.SMTPAppender(指定输出到邮件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.jdbc.JDBCAppender(指定输出到数据库)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

5、log4j.appender.fileout.File
如果上面指定输出端的类型为:
log4j.appender.fileout=org.apache.log4j.FileAppender
那么这里就需要指定输出的文件路径:
log4j.appender.fileout.File=D:\\Tomcat 5.5\\logs\\qc.log

6、log4j.appender.stdout.layout
对上面stdout输出的布局定义,如:
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
输出布局可以是:
org.apache.log4j.HTMLLayout(HTML表格形式布局)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
org.apache.log4j.PatternLayout(自定义布局)

7、log4j.appender.stdout.layout.ConversionPattern
如果上面使用的是PatternLayout(自定义布局),这里就要指定具体的输出格式,如:
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%t] %C.%M(%L) | %m%n
%百分号为转义符,其后面更一个指定的字符表示特殊含义,其他字符都原样输出。
%m 日志信息,即代码里给日志指定的消息。
%c 产生日志的类名,即某个类里的某个方法里产生了日志。
%t 产生日志的线程名称。如:主线程main
%M 产生日志的方法名,注意:该日志会影响程序速度,应避免使用。
%C 产生日志的全类名,注意:该日志会影响程序速度,应避免使用。
%F 产生日志的文件名,注意:该日志会影响程序速度,应避免使用。
%L 产生日志的行数字,注意:该日志会影响程序速度,应避免使用。
%d 产生日志的时间,可以指定格式,默认格式 %d == %d{yyyy-MM-dd HH:mm:ss}
%n 表示换行符,依赖于平台的行分隔符。
%p 日志的优先级,即代表字符串:"DEBUG","INFO","WARN","ERROR"等
%r 日志构建的毫秒数,
%x 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
%% 表示一个百分号
限定最小宽度、最大宽度、文本的对齐方式,比如要对%c进行限定:
%20c 最小的宽度是20,默认右对齐
%.20c 最大的宽度是20,默认右对齐,左边多出的字符截掉。
%-20c 最小的宽度是20,指定左对齐。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值