3JAVA扩展 3.1 Log4j基本使用方法
& Q* O, e5 T: T Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。
* F9 x! h9 D4 C* U7 |: x1 m2 K$ l# L 一、定义配置文件/ d$ ^9 W' P* x& ~
其实您也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配置文件将使您的应用程序更加灵活。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。下面我们介绍使用Java特性文件做为配置文件的方法:
. n# T6 Z6 @ r. E7 c9 ] 1.配置根Logger,其语法为:7 N8 z ?( g K- J- \$ z! Z- M
log4j.rootLogger = [ level ] , appenderName, appenderName, …
5 j( l; a( ~! y; y7 j9 I, w 其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
& h8 a( ^3 [3 G" h7 \ 2.配置日志信息输出目的地Appender,其语法为:
+ y- L+ w3 P. b log4j.appender.appenderName = fully.qualified.name.of.appender.class+ H. Q3 s# R' i" Q' N: h2 q
log4j.appender.appenderName.option1 = value1
0 t0 b$ t# |2 I4 J9 I …
* y% B$ F+ |& d0 |* d$ e% L5 I5 L log4j.appender.appenderName.option = valueN) x7 j2 H9 Q P
其中,Log4j提供的appender有以下几种:; p, V* H) R8 q1 F7 Z" U. u: M
org.apache.log4j.ConsoleAppender(控制台),6 j7 n( x7 ?$ u; r- @8 V
org.apache.log4j.FileAppender(文件),
' I3 H% `0 V. S0 }' ~. Q( x org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
$ x" M* D$ p' X r2 O4 l+ _: @( @ org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),& K4 i y) ^* P8 T# {, h% x
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)5 I" v1 j) _( n& a+ A q C
3.配置日志信息的格式(布局),其语法为:1 j. J/ ]6 ?4 b+ y7 Z$ h; M
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
6 s* C1 l6 c( `/ ?( a9 n log4j.appender.appenderName.layout.option1 = value1
3 k; W& c' ^' w8 q6 p …
0 j8 |6 Z1 M8 ?8 Q/ G2 G& }0 q; B log4j.appender.appenderName.layout.option = valueN3 N$ e% F1 g0 D4 O" w
其中,Log4j提供的layout有以下几种:/ i* z" O9 b( m) N
org.apache.log4j.HTMLLayout(以HTML表格形式布局),( p( v! U7 e! j2 h) `0 S
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
- @( d* A) I: j- H7 N1 [4 B6 ~ org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),3 S# W X2 t3 F$ h, N- H; ~
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) |