log4j具有6种一般的日志级别(Level), 日志记录器(Logger)的可用级别Level (不包括自定义级别 Level):
1.static Level DEBUG
DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的;
2.static Level INFO
INFO level表明消息在粗粒度级别上突出强调应用程序的运行过程;
3.static Level WARN
WARN level表明会出现潜在错误的情形;
4.static Level ERROR
ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行;
5.static Level FATALFATAL level指出每个严重的错误事件将会导致应用程序的退出;
另外,还有两个可用的特别的日志记录级别:
1.static Level ALLALL Level是最低等级的,用于打开所有日志记录;
2.static Level OFF
OFF Level是最高等级的,用于关闭所有日志记录;
日志记录器(Logger)的行为是分等级的。具体分为:OFF、 FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL或者您定义的级别;
Log4j建议只使用四个级别;
优先级从高到低分别是 ERROR、WARN、INFO、DEBUG;
二、文件配置
#Threshold是个全局的过滤器,它将把低于所设置的level的信息过滤不显示出来;
log4j.threshold=WarnAppender
#配置根logger;
log4j.rootLogger= debug, stdout, DebugAppender, InfoAppender, WarnAppender, ErrorAppender
# 配置日志信息输出目的地,org.apache.log4j.ConsoleAppender为控制台;
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#配置日志以指定格式输出;
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#配置日志输出格式;
log4j.appender.stdout.layout.ConversionPattern= %d{yyyy-MM-dd HH:mm:ss} [%t] %p %c - %m%n
log4j.logger.DebugAppender.access=DEBUG
#文件大小到达指定尺寸的时候产生一个新的文件;
log4j.appender.DebugAppender=org.apache.log4j.RollingFileAppender
#文件路径
log4j.appender.DebugAppender.File=/logs/kmc/app-debug.log
log4j.appender.DebugAppender.MaxFileSize=500KB
log4j.appender.DebugAppender.MaxBackupIndex=10
log4j.appender.DebugAppender.threshold = DEBUG
log4j.appender.DebugAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.DebugAppender.layout.ConversionPattern= %d{yyyy-MM-dd HH:mm:ss} [%t] %p %c - %m%n
三、配置解释
Appender 为日志输出目的地,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台);
org.apache.log4j.FileAppender(文件);
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
Layout:日志输出格式,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:
%d{yyy MMM dd HH:mm:ss ,SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )