posts - 20,  comments - 7,  trackbacks - 0

   Log4j 有三个主要的组件: Loggers Appenders Layouts ,即日志类别,日志要输出的地方和日志以何种形式输出。

1 Loggers

    Loggers 组件在此系统中被分为六个级别: TRACE DEBUG INFO WARN ERROR FATAL

2 Appenders

  Log4j 日志系统允许把日志输出到不同的地方,如控制台( Console )、文件( Files )、根据天数或者文件大小产生新的文件、以流的形式发送到其它地方等等。

其语法表示为:

org.apache.log4j.ConsoleAppender (控制台)

org.apache.log4j.FileAppender (文件)

org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)

org.apache.log4j.RollingFileAppender (文件大小到指定尺寸时产生一个新的文件)

org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)

3 Layouts

   Log4j 可以在 Appenders 的后面附加 Layouts 来完成这个功能。 Layouts 提供了四种日志输出样式,如根据 HTML 样式、自由指定样式、包含日志级别与信息的样式和包含日志时间、线程、类别等信息的样式等等。

其语法表示为:

org.apache.log4j.HTMLLayout (以 HTML 表格形式布局)

org.apache.log4j.PatternLayout (可以灵活地指定布局模式)

org.apache.log4j.SimpleLayout (包含日志信息的级别和信息字符串)

org.apache.log4j.TTCCLayout (包含日志产生的时间、线程、类别等等信息)

 

  在实际编程时,要使 Log4j 真正在系统中运行事先还要对配置文件进行定义。定义步骤就是对 Logger Appender Layout 的分别使用,具体如下:

1 配置根 Logger ,其语法为:
    log4j.rootLogger = [ level ] , appenderName, appenderName, …

level Logger 的优先级,

appenderName 是日志信息的输出地,可以同时指定多个输出地。

如: log4j.rootLogger= INFO,A1,A2


2
配置日志信息输出目的地 ,其语法为:
    log4j.appender.appenderName = fully.qualified.name.of.appender.class
   
可以指定上述五个目的地中的一个。

3 配置日志信息的格式 ,其语法为:
    log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
  

下面给出一个具体配置例子,在程序中可以参照执行:
    log4j.rootLogger=INFO,A1
    log4j.appender.A1=org.apache.log4j.ConsoleAppender
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern=
                                        %-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
   

这里需要说明的就是日志信息格式中几个符号所代表的含义:
X : X 信息输出时左对齐;
   %p:
日志信息级别
   %c:
日志信息所在地(类名),通常就是所在类的全名
   %m:
产生的日志具体信息
   %n:
输出日志信息换行, Windows 平台为“ \r\n ”, Unix 平台为“ \n
  %r
输出自应用启动到输出该 log 信息耗费的毫秒数

  %t 输出产生该日志事件的线程名

  %d 输出日志时间点的日期或时间,默认格式为 ISO8601 ,也可以在其后指定格式,比如: %d{yyy MMM dd HH:mm:ss,SSS} ,输出类似: 2002 10 18 22 10 28 921

  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

 

4 、读取配置文件

其语法为:

BasicConfigurator.configure () 自动快速地使用缺省 Log4j 环境。

PropertyConfigurator.configure ( String configFilename) :读取使用 Java 的特性文件编写的配置文件。

DOMConfigurator.configure ( String filename ) :读取 XML 形式的配置文件。

 

log4j 配置,一般可以采用两种方式 .properties .xml
一、 log4j.properties
# 设置对应的级别 INFO,DEBUG,WARN,ERROR 和输出地 A1 A2
log4j.category.com.test =ERROR,A1
log4j.category.com.test=INFO, A2
###
设置输出地 A1 ,为 ConsoleAppender( 控制台 ) ##
log4j.appender.A1=org.apache.log4j.ConsoleAppender
###
设置 A1 的输出布局格式 PatterLayout( 可以灵活地指定布局模式) ##
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
###
配置日志输出的格式 ##
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
###
设置输出地 A2 到文件(文件大小到达指定尺寸的时候产生一个新的文件) ##
log4j.appender.A2=org.apache.log4j.RollingFileAppender
###
文件位置 ##
log4j.appender.A2.File=C:/log4j/log.html
###
文件大小 ##
log4j.appender.A2.MaxFileSize=500KB
log4j.appender.A2.MaxBackupIndex=1
##
指定采用 html 方式输出
log4j.appender.A2.layout=org.apache.log4j.HTMLLayout

二、 log4j.xml

<?xml version="1.0" encoding="GB2312" ?>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

<appender name="com.test.all" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="
C:/log4j/log. log" />

<!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
<param name="Append" value="false" />
<param name="MaxBackupIndex" value="10" />
<!-- 设置输出文件项目和格式 -->
<layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />
</layout>
</appender>

<appender name="com.test.file " class="org.apache.log4j.RollingFileAppender">
<param name="File" value="
C:/log4j/output .log" />
<param name="Append" value="true" />
<param name="MaxFileSize" value="10240" />
<param name="MaxBackupIndex" value="10" />
<layout class="org.apache.log4j.PatternLayout">
       <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />
</layout>
</appender>

<logger name="test.log">
  <level value="debug" /><!-- 设置级别 -->
  <appender-ref ref="com.test.file" /><!-- 与前面的通道id相对应 -->
</logger>

<root> <!-- 设置接收所有输出的通道 -->
   <appender-ref ref=" com.test.all" /><!-- 与前面的通道id相对应 -->
</root>
</log4j:configuration>


三、配置文件加载方法:

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.xml.DOMConfigurator;

public class Log4jApp {
   public static void main(String[] args) {
       DOMConfigurator.configure("
C:/log4j/ log4j.xml");
       //PropertyConfigurator.configure("
C:/log4j/ log4j.properties");
       Logger log=Logger.getLogger("com.test");
       log.info("Testing log.info()");
   }
}

posted on 2006-08-14 22:33 Lizzie 阅读(1281) 评论(0)  编辑  收藏 所属分类: 专业积木

只有注册用户登录后才能发表评论。


网站导航:
 

<2006年8月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

搜索

  •  

最新评论

阅读排行榜

评论排行榜