2024年3月30日发(作者:)

log4j配置文件有三个主要的组件:

Logger,Appender和Layout,分别为日志类型,日志输出目的地,日志输出格式。

gger = [level], appenderName, appenderName, ...

(level是错误级别,appenderName是输出目的地,本例设为mylog,可以定义多个)

level优先级分别为FATAL、ERROR、WARN、INFO、DEBUG 5个级别.通过定义的级别,你可以

控制程序中的日志输出.比如在这里定义了ERROR级别,程序中只有FARAL、ERROR 级别的LOG

会被输出.

= 输出目的地 (这里的appenderName是在前面定义的,可任意

起名)

Log4j提供的输出目的地有以下几种:

eAppender(控制台)

pender(文件)

ollingFileAppender(每天产生一个日志文件)

gFileAppender(文件到达指定大小时产生一个新文件)

Appender(将日志信息以流格式发送到任何地方)

=your file dir

eSize=your filesize

kupIndex=num设置保存备份文件数量

= 布局类型(设置布局类型)

Log4j提供的layout有以下4种:

yout(以HTML表格形式布局)

Layout(包含日志信息的级别和信息字符串)

yout(包含日志产生的时间、线程、类别等等信息)

nLayout(可以灵活地指定布局模式)

如果使用PatternLayout布局就要指定的打印信息的具体格式ConversionPattern,打印参

数如下:

%m 输出代码中指定的消息

%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL

%r 输出自应用启动到输出该log信息耗费的毫秒数

%c 输出所属的类目,通常就是所在类的全名

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

%n 输出一个回车换行符,Windows为"rn",Unix为"n"

%d 输出日志时间,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出:2007年5月17日

19:30:00,000

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

[QC]是log信息的开头,可以为任意字符,一般为项目简称

程序中并没有直接用到log4j的类,而是使用了commons-logging提供的日志类。

commons-logging是为"所有的Java日志实现"提供一个统一的接口,它的功能据说“平常

弱”。

Log(基本记录器)和LogFactory(负责创建Log实例)。当被加入到

CLASSPATH之后,它会合理地猜测你喜欢的日志工具,然后进行自我设置,用户根本不需要

做任何设置。默认的LogFactory是按照下列的步骤去发现并决定那个日志工具将被使用的

(按照顺序,寻找过程会在找到第一个工具时中止):

1.寻找当前factory中名叫配置属性的值

2.寻找系统中属性中名叫的值

3.如果应用程序的classpath中有log4j,则使用相关的包装(wrapper)类(Log4JLogger)

4.如果应用程序运行在jdk1.4的系统中,使用相关的包装类(Jdk14Logger)

5.使用简易日志包装类(SimpleLog)

log4j配置详解

-------------------------------------------------------------------------------

-

log4j配置详解 log4j详解

根据网络资料整理

1. 概述<<<<

1.1. 背景

在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期

性的记录到文件中供其他应用进行统计分析工作;跟踪代码运行时轨迹,作为日后审计的依

据;担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。

最普通的做法就是在代码中嵌入许多的打印语句,这些打印语句可以输出到控制台或文

件中,比较好的做法就是构造一个日志操作类来封装此类操作,而不是让一系列的打印语句

充斥了代码的主体。

1.2. Log4j简介

在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,

Apache为我们提供了一个强有力的日志操作包-Log4j。

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输

送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog

守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我

们能够更加细致地控制日志的生成过程。最令人感兴趣的就 是,这些可以通过一个配置文

件来灵活地进行配置,而不需要修改应用的代码。

此外,通过Log4j其他语言接口,您可以在C、C+ +、.Net、PL/SQL程序中使用Log4j,

其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件

模块。而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至

是SNMP应用中。