log4j配置文件的三个主要的组件:
Logger,Appender和Layout,分别为日志类型,日志输出目的地,日志输出格式。
log4j.rootLogger = [level],appenderName, appenderName, ...
(level是错误级别,appenderName是输出目的地,本例设为mylog,可以定义多个) level优先级分别为FATAL、ERROR、WARN、INFO、DEBUG 5个级别.通过定义的级别,你可以控制程序中的日志输出.比如在这里定义了ERROR级别,程序中只有FARAL、ERROR 级别的LOG会被输出.
log4j.appender.mylog= 输出目的地 (这里的appenderName是在前面定义的,可任意起名)
Log4j提供的输出目的地有以下几种:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件到达指定大小时产生一个新文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任何地方)
log4j.appender.filelog.File=your file dir
log4j.appender.filelog.MaxFileSize=your filesize
log4j.appender.mylog.MaxBackupIndex=num设置保存备份文件数量
log4j.appender.appenderName.layout = 布局类型(设置布局类型)
Log4j提供的layout有以下4种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
如果使用PatternLayout布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows为"rn",Unix为"n"
%d 输出日志时间,比如:%d{yyyy MMM ddHH:mm:ss,SSS},输出:2007年5月17日 19:30:00,000
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数
[QC]是log信息的开头,可以为任意字符,一般为项目简称
程序中并没有直接用到log4j的类,而是使用了commons-logging提供的日志类。commons-logging是为"所有的Java日志实现"提供一个统一的接口,它的功能据说“平常弱”。
Log(基本记录器)和LogFactory(负责创建Log实例)。当commons-logging.jar被加入到CLASSPATH之后,它会合理地猜测你喜欢的日志工具,然后进行自我设置,用户根本不需要做任何设置。默认的LogFactory是按照下列的步骤去发现并决定那个日志工具将被使用的(按照顺序,寻找过程会在找到第一个工具时中止):
1.寻找当前factory中名叫org.apache.commons.logging.Log配置属性的值
2.寻找系统中属性中名叫org.apache.commons.logging.Log的值
3.如果应用程序的classpath中有log4j,则使用相关的包装(wrapper)类(Log4JLogger)
4.如果应用程序运行在jdk1.4的系统中,使用相关的包装类(Jdk14Logger)
5.使用简易日志包装类(SimpleLog)
版权声明:本文为博主原创文章,未经博主允许不得转载。