<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Alex's Blog &#187; appender</title>
	<atom:link href="http://www.hialex.net/tags/appender/feed" rel="self" type="application/rss+xml" />
	<link>http://www.hialex.net</link>
	<description>记录生活与工作中的点点滴滴</description>
	<lastBuildDate>Sat, 09 Jan 2010 12:37:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Log4j学习笔记(B)</title>
		<link>http://www.hialex.net/2008/04/log4j-note-b.html</link>
		<comments>http://www.hialex.net/2008/04/log4j-note-b.html#comments</comments>
		<pubDate>Mon, 21 Apr 2008 08:13:38 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[appender]]></category>
		<category><![CDATA[log4j]]></category>
		<category><![CDATA[笔记]]></category>

		<guid isPermaLink="false">http://www.hialex.net/2008/04/log4j-note-b.html</guid>
		<description><![CDATA[三、Appender组件 

Appender组件决定将日志信息输出到什么地方。支持以下目的地：

控制台(Console); 
文件(File); 
GUI组件(GUI component); 
套接口服务器(Remote socket server); 
NT的事件记录器(NT Event Logger); 
UNIX Syslog守护进程(Remote UNIX Syslog daemon);


一个Logger可同时对应多个Appender，示例：myLogger配置二个Appender: 一个file, 一个是console：

log4j.logger.myAppender=WARN,file,console 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=log.txt 
log4j.apender.console=org.apache.log4j.ConsoleAppender



四、Layout组件 

Layout组件决定日志输出格式，有以下几种类型：

org.apache.log4j.HTMLLayout(以HTML表格形式布局); 
org.apache.log4j.PatternLayout(可以灵活地指定布局模式); 
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串); 
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程和类别等信息);


为名称为console的Appender配置SimpleLayout，代码如下：

log4j.appender.console.layout=org.apache.log4j.SimpleLayout


输出日志格式如下：

WARN &#8211; This is a log message from the myLogger


为名称为file的Appender配置PatternLayout，代码如下：

log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%t %p &#8211; %m%n


输出日志格式如下：

THREAD-1 WARN &#8211; This is a log message from the myLogger


PatternLayout让开发者依照ConversionPattern定义输出格式。ConversionPattern中一些指定日志内容和格式的预定义符号说明如下：



符号
描述


%r 
自程序开始后消耗的毫秒数


%t
表示日志记录请求生成的线程


%p
表示日专语句的优先级


%r
与日志请求相关的类别名称


%c 
日志信息所在的类名


%m%n
表示日志信息的内容





五、Log4J的基本用法 

定义配置文件

Log4J支持二种配置文件格式：XML和Java属性文件(采用&#8220;键=值&#8221;形式)。以下为Java属性文件格式配置文件 
配置Logger组件

配置root Logger语法为：log4j.rootLogger=[priority],appenderName,appenderName,&#8230; 
配置自定义Logger组件语法为：log4j.logger.loggerName=[priority],appenderName,appenderName,&#8230; 
其中：priority为日志级别，可选值包括FATAL、ERROR、WARN、INFO、DEBUG、ALL； [...]]]></description>
			<content:encoded><![CDATA[<p>三、Appender组件 </p>
<ul>
<li>Appender组件决定将日志信息输出到什么地方。支持以下目的地：
<ul>
<li>控制台(Console); </li>
<li>文件(File); </li>
<li>GUI组件(GUI component); </li>
<li>套接口服务器(Remote socket server); </li>
<li>NT的事件记录器(NT Event Logger); </li>
<li>UNIX Syslog守护进程(Remote UNIX Syslog daemon);</li>
</ul>
</li>
<li>一个Logger可同时对应多个Appender，示例：myLogger配置二个Appender: 一个file, 一个是console：
<ul>
<li>log4j.logger.myAppender=WARN,file,console </li>
<li>log4j.appender.file=org.apache.log4j.RollingFileAppender </li>
<li>log4j.appender.file.File=log.txt </li>
<li>log4j.apender.console=org.apache.log4j.ConsoleAppender</li>
</ul>
</li>
</ul>
<p>四、Layout组件 </p>
<ul>
<li>Layout组件决定日志输出格式，有以下几种类型：
<ul>
<li>org.apache.log4j.HTMLLayout(以HTML表格形式布局); </li>
<li>org.apache.log4j.PatternLayout(可以灵活地指定布局模式); </li>
<li>org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串); </li>
<li>org.apache.log4j.TTCCLayout(包含日志产生的时间、线程和类别等信息);</li>
</ul>
</li>
<li>为名称为console的Appender配置SimpleLayout，代码如下：
<ul>
<li>log4j.appender.console.layout=org.apache.log4j.SimpleLayout</li>
</ul>
</li>
<li>输出日志格式如下：
<ul>
<li>WARN &#8211; This is a log message from the myLogger</li>
</ul>
</li>
<li>为名称为file的Appender配置PatternLayout，代码如下：
<ul>
<li>log4j.appender.file.layout=org.apache.log4j.PatternLayout </li>
<li>log4j.appender.file.layout.ConversionPattern=%t %p &#8211; %m%n</li>
</ul>
</li>
<li>输出日志格式如下：
<ul>
<li>THREAD-1 WARN &#8211; This is a log message from the myLogger</li>
</ul>
</li>
<li>PatternLayout让开发者依照ConversionPattern定义输出格式。ConversionPattern中一些指定日志内容和格式的预定义符号说明如下：<br />
<table cellspacing="0" cellpadding="2" width="356" border="1">
<tbody>
<tr>
<td valign="top" width="106">符号</td>
<td valign="top" width="248">描述</td>
</tr>
<tr>
<td valign="top" width="109">%r </td>
<td valign="top" width="248">自程序开始后消耗的毫秒数</td>
</tr>
<tr>
<td valign="top" width="111">%t</td>
<td valign="top" width="248">表示日志记录请求生成的线程</td>
</tr>
<tr>
<td valign="top" width="112">%p</td>
<td valign="top" width="248">表示日专语句的优先级</td>
</tr>
<tr>
<td valign="top" width="113">%r</td>
<td valign="top" width="248">与日志请求相关的类别名称</td>
</tr>
<tr>
<td valign="top" width="114">%c </td>
<td valign="top" width="248">日志信息所在的类名</td>
</tr>
<tr>
<td valign="top" width="114">%m%n</td>
<td valign="top" width="248">表示日志信息的内容</td>
</tr>
</tbody>
</table>
</li>
</ul>
<p>五、Log4J的基本用法 </p>
<ol>
<li>定义配置文件
<ul>
<li>Log4J支持二种配置文件格式：XML和Java属性文件(采用&#8220;键=值&#8221;形式)。以下为Java属性文件格式配置文件 </li>
<li>配置Logger组件
<ul>
<li>配置root Logger语法为：log4j.rootLogger=[priority],appenderName,appenderName,&#8230; </li>
<li>配置自定义Logger组件语法为：log4j.logger.loggerName=[priority],appenderName,appenderName,&#8230; </li>
<li>其中：priority为日志级别，可选值包括FATAL、ERROR、WARN、INFO、DEBUG、ALL； </li>
<li>appenderName指定Appender组件，可指定多个;</li>
</ul>
</li>
</ul>
<ol>
<li>配置Appender组件
<ul>
<li>配置日志信息输出目的地Appender, 语法为： log4j.appender.appenderName=fully.ualified.name.of.appender.class </li>
<li>log4j.appender.appenderName.option1=value1
<ul>
<p>&#8230; </p>
<p>log4j.appender.appenderName.optionN=valueN </p>
</p>
</ul>
</li>
<li>Log4J提供的Appender有以下几种：
<ul>
<li>org.apache.log4j.ConsoleAppender(控制台); </li>
<li>org.apache.log4j.FileAppender(文件); </li>
<li>org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件); </li>
<li>org.apache.log4j.RollingFileAppender(文件大小到指定尺寸产生一个新的文件); </li>
<li>org.apache.log4j.WriteAppender(将日志信息以流格式发送到任意指定地方);</li>
</ul>
</li>
</ul>
</li>
<li>配置Layout组件
<ul>
<li>配置Layout组件语法为： </li>
<li>log4j.appender.appenderName.layout=fully.ualified.name.of.appender.class </li>
<li>log4j.appender.appenderName.layout.option1=value1
<p>&#8230; </p>
<p>log4j.appender.appenderName.layout.optionN=valueN</p>
</li>
</ul>
</li>
</ol>
</li>
<li>程序中使用Log4j</li>
</ol>
<ul>
<li>获得日志记录器：
<ul>
<li>获得rootLogger：Logger rootLogger=Logger.getRootLogger(); </li>
<li>获得自定义Logger：Logger myLogger = Logger.getLogger(&quot;log4j.logger.myLogger&quot;);</li>
</ul>
</li>
<li>读取日志记录器，配置Log4J环境;
<ol>
<li>BasicConfigurator.configure(): 自动快速地使用默认Log4J环境; </li>
<li>Property.configurator.configure(String configFilename): 读取使用Java属性格式的配置文件并配置Log4J环境； </li>
<li>DOMConfigurator.configure(String filename): 读取XML形式的配置文件并配置LOG4J环境;</li>
</ol>
</li>
<li>输出日志信息;
<ul>
<li>在程序代码中需要生成日志的地方，调用Logger的各种输出日志方法输出不同级别的日志，例如：
<ul>
<li>myLogger.debug(&quot;Thie is a log message from the &quot; + myLogger.getName());</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><a href="http://17fav.com/?url=http%3A%2F%2Fwww.hialex.net%2F2008%2F04%2Flog4j-note-b.html&title=Log4j%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%28B%29" title="用 17fav 收藏和分享本文"><img src="http://17fav.com/i/bookmark.gif" alt="17fav 收藏本文" /></a></p><h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li>2008-04-20 -- <a href="http://www.hialex.net/2008/04/log4j-note-a.html" title="Log4j学习笔记(A)">Log4j学习笔记(A)</a> (0)</li><li>2009-03-08 -- <a href="http://www.hialex.net/2009/03/mysql-notes-3.html" title="MySQL读书笔记(3)">MySQL读书笔记(3)</a> (0)</li><li>2009-03-03 -- <a href="http://www.hialex.net/2009/03/mysql-notes-2.html" title="MySQL读书笔记(2)">MySQL读书笔记(2)</a> (0)</li><li>2009-03-02 -- <a href="http://www.hialex.net/2009/03/mysql-notes-1.html" title="MySQL读书笔记(1)">MySQL读书笔记(1)</a> (0)</li><li>2008-04-02 -- <a href="http://www.hialex.net/2008/04/servlet-note.html" title="Servlet程序设计">Servlet程序设计</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.hialex.net/2008/04/log4j-note-b.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
