rootLogger
log4j.rootLogger = [ level ] , appenderName, …
rootLogger配置的是日志的输出等级,log4j把日志的内容按照等级来划分,等级有以下几种
OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL
等级有优先级关系,上面是按照优先级从高到低排序的,优先级的作用是筛选输出内容,比如你把优先级设置成了DEBUG,ALL的优先级比DEBUG优先级低,那么他就会被过滤到,不被输出,INFO的优先级比DEBUG优先级高,那么他就会被输出,同样WARN和ERROR这些因为也比他优先级高,所以同样也会被输出。
appenderName是自定义的,可以按照自己的方式来写,书写规范可以遵循java变量名称的书写规范。他的主要作用是设置输出的一些附加项,比如输出格式,输出目的地等。你可以设置多个appenderName,他们会同时有效。
appender
log4j.appender.appenderName = ?
这里的appenderName需要替换成你在rootLogger属性里面生命的appenderName,比如你配置了
log4j.rootLogger = DEBUG, Console
你就需要再配置appender的时候写成
log4j.appender.Console=?
?是指输出目的地,log4j为我们提供了以下几种输出目的地
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
其中设置文件大小到达指定尺寸的时候产生一个新的文件时,可以通过
log4j.appender.Console.MaxFileSize=1024KB
来设置尺寸大小
设置了输出目的地为文件时,可以通过
log4j.appender.Console.File=?
来设置文件路径
log4j.appender.appenderName.layout =?
这个属性配置生成日志的布局格式
log4j为我们提供了以下几种布局格式
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
当我们设置布局为org.apache.log4j.PatternLayout
时,我们可以通过
log4j.appender.appenderName.layout.ConversionPattern
自由灵活的配置输出内容
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%d 输出日志时间点的日期或时间,可以指定格式,%d{yyy MMM dd HH:mm:ss,SSS}
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数
%m 输出代码中指定的消息
logger
log4j.logger.packageName[.ClassName]=level[,appender]
logger的作用是指定单个包下的输出日志级别,和输出附加项