Log4j由三个重要的组件构成:日志记录的优先级,日志记录的输出目的地,日志记录的输出格式。
日志信息的优先级从高到低有ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目
的地 指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。
写配置文件 (log4j.properties)
#配置文件
log4j.rootLogger=INFO, A1, A2
#setting for appender A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
#setting for appender A2
log4j.appender. A2=org.apache.log4j.RollingFileAppender
log4j.appender. A2.File=example.log
log4j.appender. A2.MaxFileSize=100KB
log4j.appender. A2.MaxBackupIndex=1
log4j.appender. A2.layout=org.apache.log4j.PatternLayout
log4j.appender. A2.layout.ConversionPattern=%p %t %c - %m%n
注意:其中的log4j.appender必须都为小写
注释:
1.配置根Logger,其语法为:
log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只
使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中
相应级别的日志信息的开关。指定输出只显示比该级别以上的信息,所有比该级别低的信息都不会被显示。比如在这里定义了
INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
2.配置日志信息输出目的地Appender,其语法为
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.option = valueN
其中,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
3.配置日志信息的格式(布局),其语法为:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.option = valueN
其中,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
4.当layout为PatternLayout时,ConversionPattern的格式有下面选项:
%r: 自程序开始后消耗的毫秒数
%t: 表示日志记录请求生成的线程
%p: 表示日志语句的优先级
%r: 与日志请求相关的类别名称
%c: 信息所在的类名
%m%n: 表示消息的内容