log4j配置文件详解附实例Word文件下载.docx
《log4j配置文件详解附实例Word文件下载.docx》由会员分享,可在线阅读,更多相关《log4j配置文件详解附实例Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。
log4j.appender.filelog.MaxFileSize=yourfilesize
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{yyyyMMMddHH:
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中名叫mons.logging.Log配置属性的值
2.寻找系统中属性中名叫mons.logging.Log的值
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的事件记录器、UNIXSyslog守护进程等;
我们也可以控制每一条日志的输出格式;
通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
此外,通过Log4j其他语言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。
而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中。
本文介绍的Log4j版本是1.2.3。
作者试图通过一个简单的客户/服务器Java程序例子对比使用与不使用Log4j1.2.3的差别,并详细讲解了在实践中最常使用Log4j的方法和步骤。
在强调可重用组件开发的今天,相信Log4j将会给广大的设计开发人员带来方便。
加入到Log4j的队伍来吧!
>
2.一个简单的例子<
我们先来看一个简单的例子,它是一个用Java实现的客户/服务器网络程序。
刚开始我们不使用Log4j,而是使用了一系列的打印语句,然后我们将使用Log4j来实现它的日志功能。
这样,大家就可以清楚地比较出前后两个代码的差别。
2.1.不使用Log4j
2.1.1.客户程序
packagelog4j;
importjava.io.*;
import.*;
publicclassClientWithoutLog4j{
publicstaticvoidmain(Stringargs[]){
Stringwelcome=null;
Stringresponse=null;
BufferedReaderreader=null;
PrintWriterwriter=null;
InputStreamin=null;
OutputStreamout=null;
Socketclient=null;
try{
client=newSocket("
localhost"
8001);
System.out.println("
info:
Clientsocket:
"
+client);
in=client.getInputStream();
out=client.getOutputStream();
}catch(IOExceptione){
error:
IOException:
+e);
System.exit(0);
}
try{
reader=newBufferedReader(newInputStreamReader(in));
writer=newPrintWriter(newOutputStreamWriter(out),true);
welcome=reader.readLine();
debug:
Serversays:
'
"
+welcome+"
'
);
HELLO"
writer.println("
HELLO"
response=reader.readLine();
Serverresponds:
+response+"
);
HELP"
HELP"
QUIT"
QUIT"
warn:
IOExceptioninclient.in.readln()"
System.out.println(e);
Thread.sleep(2000);
}catch(Exceptionignored){}
}
}
2.1.2.服务器程序
packagelog4j