`
sfish
  • 浏览: 27644 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

log4j的配置

    博客分类:
  • java
阅读更多

log4j有三个主要的组件:Logger,Appender和Layout,分别是日志类别,日志要输出的地方和日志以何种形式输出。

1. Logger
Logger组件有以下级别:OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL
OFF>FATAL>ERROR>WARN>INFO>DEBUG>ALL
OFF  关闭日志
ALL  处理所有日志


2. Appender
log4j日志系统允许把日志输出到不同的地方,如控制台、文件、根据天数或者文件大小产生新的文件、以流的形式发送到其它地方等。
有以下几种Appender:
org.apache.log4j.ConsoleAppender (控制台)
org.apache.log4j.FileAppender (文件)
org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)
org.apache.log4j.RollingFileAppender (文件大小到指定尺寸时产生一个新的文件)
org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)

3. Layout
log4j可以在Appender的后面附加Layout来完成日志输出格式控制。log4j提供了四种日志输出样式,如HTML样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式:
org.apache.log4j.HTMLLayout (以 HTML 表格形式布局)
org.apache.log4j.PatternLayout (可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout (包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout (包含日志产生的时间、线程、类别等等信息)

在实际编程时,要使log4j真正在系统中运行,事先还要定义配置文件,步骤如下:

1. 配置根Logger:
log4j.rootLogger=[level], appenderName, appenderName, …
level指Logger的级别,只有日志的优先级高于此级别才进行处理
appenderName是日志信息的输出目的地,可以同时指定多个输出目的地
例:log4j.rootLogger=INFO, A1, A2

2. 配置日志信息输出目的地:
log4j.appender.appenderName=Appender的全类名

3. 配置日志信息的格式:
log4j.appender.appenderName.layout=Layout的全类名
  
下面给出一个具体的例子:
log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n

这里需要说明的就是日志信息格式中几个符号所代表的含义:
-   左对齐
%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  输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数


4. 读取配置文件:
BasicConfigurator.configure() 自动快速地使用缺省 Log4j 环境
PropertyConfigurator.configure(String configFilename) 读取使用Java的property文件编写的配置文件
DOMConfigurator.configure(String filename) 读取XML形式的配置文件

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics