-
log4j 配置文件。
log4j.rootLogger = INFO, stdout, D log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Threshold = DEBUG log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern =%-d{yyyy-MM-dd HH:mm:ss} %-5p [%F:%L] : %m%n log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = E:/logs/timer.log log4j.appender.R.DatePattern = '.'yyyy-MM-dd log4j.appender.D.Append = true log4j.appender.D.Threshold = INFO log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} %-5p [%F:%L] : %m%n
log4j.rootLogger=日志级别,appender1, appender2, ….
- 日志级别:ALL<DEBUG<INFO<WARN<ERROR<FATAL<OFF,不区分大小写
- 注意,需在控制台输入,只需将其中一个appender定义为stdout即可
- 注意,rootLogger默认是对整个工程生效
- 注意,如果只想对某些包操作,那么:log4j.logger.com.hutu=info, stdout,表示该日志对package com.hutu生效
-
如果要对某个Logger进行特殊输出,只需要在配置一下该Logger,覆盖父亲的配置即可。覆盖时,可以配置级别,输出地,也可两者都配置
类别category配置
Logger还有个类别(Category)的概念,通过设置类别来设置该类别下所有的Logger:
catergory类似于Java中的Package,效果跟Logger的名字等价
#配置rootLogger为ERROR级别,输出地位A1 log4j.rootLogger= ERROR, A1 #作用于类别com.log4j.test下所有的Logger, 输出则继承rootLogger配置 log4j.category.com.log4j.test=DEBUG # 配置Appender A1,输出到控制台,使用正则表达式布局 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout #定义输出格式 log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss,SSS} [%C]-[%p] %m%n
log4j.appender.appender1=org.apache.log4j.日志输出到哪儿
- ConsoleAppender(控制台)
- FileAppender(文件)
- DailyRollingFileAppender(每天产生一个日志文件)
- RollingFileAppender(文件大小到达指定尺寸时产生一个新的文件)
- WriteAppender(将日志信息以流格式发送到任意指定的地方)
- JDBCAppender(将日志信息保存到数据库中)
log4j.appender.appender1.File=文件目录及文件
如 ${user.home}/logs/... 路径名可以是绝对路径,相对路径一般对于web应用使用还可以。而对于java客户端程序,一般是通过书写绝对路径,绝对路径一定要存在(文件可以动态产生,目录不可以)。当然也可以通过java代码进行此项配置文件的改写实现相对路径。
log4j.appender.appender1.MaxFileSize=最大文件大小
log4j.appender.appender1.MaxBackupIndex=备份文件个数
- 其中,appender1是在第一行定义过的;
- 文件目录及文件,例如,/home/admin/logs/hutudan.log
- 最大文件大小,例如,100KB
- 备份文件个数,例如,1
log4j.appender.ServerDailyRollingFile.DatePattern=日志后缀格式
- 例如,'.'yyyy-MM-dd
log4j.appender.appender1.layout=org.apache.log4j.日志布局格式
- HTMLLayout(以HTML表格形式布局)
- SimpleLayout(包含日志信息的级别和信息字符串)
- TTCCLayout(包含日志产生的时间,执行绪,类别等信息)
- PatternLayout(可以灵活的指定布局格式,常用)
- #如果使用pattern布局就要指定的打印,通常指把电脑或其他电子设备中的文字或图片等可见数据,通过打印机等输出在纸张等记录物上。 更多..打印 信息的具体格式ConversionPattern,打印参数如下:
# %m 输出代码中指定的消息
# %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
# %r 输出自应用启动到输出该log信息耗费的毫秒数
# %c 输出所属的类目,通常就是所在类的全名
# %t 输出产生该日志事件的线程名
# %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
# %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
# %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
-
log4j文件读取顺序
<span style="white-space:pre"> </span>LogManager.resetConfiguration();
PropertyConfigurator.configure("src/resource/log4j.properties");
或者采用在本工程下写入一个
.xml文件。log4j优先加载本工程中的配置文件,其次加载jar 包中的配置文件,最后加载系统类路径的配置文件。并且前者如果加载成功,后面的加载便不进行了。