﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-An's Blog -文章分类-Log4j</title><link>http://www.blogjava.net/ag4444/category/5486.html</link><description>十年磨一键</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 02:21:55 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 02:21:55 GMT</pubDate><ttl>60</ttl><item><title>Log4j基本使用方法</title><link>http://www.blogjava.net/ag4444/articles/22306.html</link><dc:creator>   An's Blog </dc:creator><author>   An's Blog </author><pubDate>Fri, 02 Dec 2005 15:51:00 GMT</pubDate><guid>http://www.blogjava.net/ag4444/articles/22306.html</guid><wfw:comment>http://www.blogjava.net/ag4444/comments/22306.html</wfw:comment><comments>http://www.blogjava.net/ag4444/articles/22306.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ag4444/comments/commentRss/22306.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ag4444/services/trackbacks/22306.html</trackback:ping><description><![CDATA[原文：<A href="http://www.javafan.net/article/20041209212317090.html">http://www.javafan.net/article/20041209212317090.html</A><BR><BR>Log4j的组成部分：1、记录器（优先级）。2、存放器（输出位置）。3、布局（输出格式）。<BR><BR>1、记录器<BR><BR>log4j允许程序员定义多个记录器，每个记录器有自己的名字，记录器之间通过名字来表明隶属关系（或家族关系）。列如，记录器a.b,与记录器a.b.c之间是父子关系，而记录器a与a.b.c之间是祖先与后代的关系，父子关系是祖先与后代关系的特例。通过这种关系，可以描述不同记录器之间的逻辑关系。<BR>　　有一个记录器叫根记录器，它永远存在，且不能通过名字检索或引用，可以通过Logger.getRootLogger()方法取得它，而一般记录器通过Logger.getLogger(String name)方法。下面是Logger类的基本方法。<BR><BR>&nbsp;package org.apache.log4j; 
<DIV class=code>
<P></P>
<P>public class Logger {</P>
<P>// Creation &amp; retrieval methods:<BR>public static Logger getRootLogger();<BR>public static Logger getLogger(String name);</P>
<P>// printing methods:<BR>public void debug(Object message);<BR>public void info(Object message);<BR>public void warn(Object message);<BR>public void error(Object message);<BR>public void fatal(Object message);</P>
<P>// generic printing method:<BR>public void log(Level l, Object message);<BR>}</P></DIV>　<BR><BR>
<P><STRONG>　　一、定义配置文件</STRONG></P>
<P>　　其实您也可以完全不使用配置文件，而是在代码中配置Log4j环境。但是，使用配置文件将使您的应用程序更加灵活。Log4j支持两种配置文件格式，一种是XML格式的文件，一种是Java特性文件（键=值）。下面我们介绍使用Java特性文件做为配置文件的方法：</P><BR>　　1.配置根Logger，其语法为：<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log4j.rootLogger = [ level ] , appenderName, appenderName, … 
<P>　　其中，level 是日志记录的优先级，分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别，优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别，您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别，则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。<BR><BR></P>
<P>　　2.配置日志信息输出目的地Appender，其语法为：</P>
<P>　　log4j.appender.appenderName = fully.qualified.name.of.appender.class <BR>　　log4j.appender.appenderName.option1 = value1 <BR>　　… <BR>　　log4j.appender.appenderName.option = valueN </P>
<P>　　其中，Log4j提供的appender有以下几种： <BR>　　org.apache.log4j.ConsoleAppender（控制台）， <BR>　　org.apache.log4j.FileAppender（文件）， <BR>　　org.apache.log4j.DailyRollingFileAppender（每天产生一个日志文件），<BR>　　org.apache.log4j.RollingFileAppender（文件大小到达指定尺寸的时候产生一个新的文件）， <BR>　　org.apache.log4j.WriterAppender（将日志信息以流格式发送到任意指定的地方） </P>
<P>　　3.配置日志信息的格式（布局），其语法为：</P>
<P>　　log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class <BR>　　log4j.appender.appenderName.layout.option1 = value1 <BR>　　… <BR>　　log4j.appender.appenderName.layout.option = valueN </P>
<P>　　其中，Log4j提供的layout有以下几种： <BR>　　org.apache.log4j.HTMLLayout（以HTML表格形式布局）， <BR>　　org.apache.log4j.PatternLayout（可以灵活地指定布局模式）， <BR>　　org.apache.log4j.SimpleLayout（包含日志信息的级别和信息字符串）， <BR>　　org.apache.log4j.TTCCLayout（包含日志产生的时间、线程、类别等等信息） </P>
<P>　　Log4J采用类似C语言中的printf函数的打印格式格式化日志信息，打印参数如下： %m 输出代码中指定的消息<BR><BR></P>
<P>　　%p 输出优先级，即DEBUG，INFO，WARN，ERROR，FATAL <BR>　　%r 输出自应用启动到输出该log信息耗费的毫秒数 <BR>　　%c 输出所属的类目，通常就是所在类的全名 <BR>　　%t 输出产生该日志事件的线程名 <BR>　　%n 输出一个回车换行符，Windows平台为“\r\n”，Unix平台为“\n” <BR>　　%d 输出日志时间点的日期或时间，默认格式为ISO8601，也可以在其后指定格式，比如：%d{yyy MMM dd HH:mm:ss,SSS}，输出类似：2002年10月18日 22：10：28，921 <BR>　　%l 输出日志事件的发生位置，包括类目名、发生的线程，以及在代码中的行数。举例：Testlog4.main(TestLog4.java:10) <BR><BR></P>
<P>　　<STRONG>二、在代码中使用Log4j</STRONG> </P>
<P>　　1.得到记录器</P>
<P>　　使用Log4j，第一步就是获取日志记录器，这个记录器将负责控制日志信息。其语法为： </P>
<P>　　public static Logger getLogger( String name) </P>
<P>　　通过指定的名字获得记录器，如果必要的话，则为这个名字创建一个新的记录器。Name一般取本类的名字，比如： </P>
<P>　　static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )</P>
<P>　　2.读取配置文件 </P>
<P>　　当获得了日志记录器之后，第二步将配置Log4j环境，其语法为：</P>
<P>　　BasicConfigurator.configure ()： 自动快速地使用缺省Log4j环境。<BR>　　PropertyConfigurator.configure ( String configFilename) ：读取使用Java的特性文件编写的配置文件。<BR>　　DOMConfigurator.configure ( String filename ) ：读取XML形式的配置文件。</P>
<P>　　3.插入记录信息（格式化日志信息）</P>
<P>　　当上两个必要步骤执行完毕，您就可以轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方，其语法如下：</P>
<P>　　Logger.debug ( Object message ) ;<BR>　　Logger.info ( Object message ) ;<BR>　　Logger.warn ( Object message ) ;<BR>　　Logger.error ( Object message ) ;<BR><BR><STRONG><FONT color=#ff0000>前面主要记了一些原理，下来是实务<BR><BR><FONT color=#000000 size=2>Log4J 学习笔记 </FONT><A href="http://www.sentom.net/list.asp?id=60">http://www.sentom.net/list.asp?id=60</A><BR><BR><BR></FONT></STRONG></P><img src ="http://www.blogjava.net/ag4444/aggbug/22306.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ag4444/" target="_blank">   An's Blog </a> 2005-12-02 23:51 <a href="http://www.blogjava.net/ag4444/articles/22306.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>