﻿<?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-小菜毛毛技术分享-随笔分类-LOG4J</title><link>http://www.blogjava.net/caizh2009/category/41182.html</link><description>与大家共同成长</description><language>zh-cn</language><lastBuildDate>Thu, 06 Aug 2009 01:37:11 GMT</lastBuildDate><pubDate>Thu, 06 Aug 2009 01:37:11 GMT</pubDate><ttl>60</ttl><item><title>log4j入门与提高-实例讲解</title><link>http://www.blogjava.net/caizh2009/archive/2009/08/06/290021.html</link><dc:creator>小菜毛毛</dc:creator><author>小菜毛毛</author><pubDate>Thu, 06 Aug 2009 00:41:00 GMT</pubDate><guid>http://www.blogjava.net/caizh2009/archive/2009/08/06/290021.html</guid><wfw:comment>http://www.blogjava.net/caizh2009/comments/290021.html</wfw:comment><comments>http://www.blogjava.net/caizh2009/archive/2009/08/06/290021.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/caizh2009/comments/commentRss/290021.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/caizh2009/services/trackbacks/290021.html</trackback:ping><description><![CDATA[<h3 class="type_original" title="原创"><a href="http://jiajun.javaeye.com/blog/439104">log4j入门与提高-实例讲解</a></h3>
<strong>关键字: log4j，输出到控制台，日志文件，日志文件分天，日志邮件</strong>
<div class="blog_content">
<p>官方网站：http://logging.apache.org/log4j/index.html：</p>
<p>&nbsp;</p>
<p>废话不多说，切入主题，下面都是基础的应用。后面我会写有关扩展的应用，使它更听话。</p>
<p>&nbsp;</p>
<p><strong>读取配置文件</strong> </p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Java代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://jiajun.javaeye.com/blog/439104#"><img alt="复制代码" src="http://jiajun.javaeye.com/images/icon_copy.gif" /></a></div>
</div>
<ol class="dp-j">
    <li><span><span class="keyword">package</span><span>&nbsp;org.cjj.log4j.config.xml; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span class="keyword">import</span><span>&nbsp;java.net.URL; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span class="keyword">import</span><span>&nbsp;org.apache.log4j.xml.DOMConfigurator; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span class="comment">/** </span>&nbsp;</span></li>
    <li><span><span class="comment">&nbsp;*&nbsp;单实例&nbsp;读取log4j配置文件，初始化log4j </span>&nbsp;</span></li>
    <li><span><span class="comment">&nbsp;*&nbsp; </span>&nbsp;</span></li>
    <li><span><span class="comment">&nbsp;*&nbsp;@author&nbsp;cjj </span>&nbsp;</span></li>
    <li><span><span class="comment">&nbsp;*&nbsp; </span>&nbsp;</span></li>
    <li><span><span class="comment">&nbsp;*/</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;Log4jXMLConfig &nbsp;&nbsp;</span></span></li>
    <li><span>{ &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;Log4jXMLConfig&nbsp;instance; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">synchronized</span><span>&nbsp;Log4jXMLConfig&nbsp;initia() &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(instance&nbsp;==&nbsp;</span><span class="keyword">null</span><span>) &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="keyword">new</span><span>&nbsp;Log4jXMLConfig(); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;instance; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;Log4jXMLConfig() &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">final</span><span>&nbsp;URL&nbsp;url&nbsp;=&nbsp;Log4jXMLConfig.</span><span class="keyword">class</span><span>.getResource(</span><span class="string">"log4j.xml"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DOMConfigurator.configure(url); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
<pre class="java" style="display: none" name="code">package org.cjj.log4j.config.xml;
import java.net.URL;
import org.apache.log4j.xml.DOMConfigurator;
/**
* 单实例 读取log4j配置文件，初始化log4j
*
* @author cjj
*
*/
public class Log4jXMLConfig
{
private static Log4jXMLConfig instance;
public static synchronized Log4jXMLConfig initia()
{
if (instance == null)
{
return new Log4jXMLConfig();
}
return instance;
}
private Log4jXMLConfig()
{
final URL url = Log4jXMLConfig.class.getResource("log4j.xml");
DOMConfigurator.configure(url);
}
}
</pre>
<p>&nbsp;</p>
<p><strong>配置文件</strong> </p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Xml代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://jiajun.javaeye.com/blog/439104#"><img alt="复制代码" src="http://jiajun.javaeye.com/images/icon_copy.gif" /></a></div>
</div>
<ol class="dp-xml">
    <li><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">"1.0"</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">"UTF-8"</span><span>&nbsp;</span><span class="tag">?&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&lt;!DOCTYPE&nbsp;log4j:configuration&nbsp;SYSTEM&nbsp;"log4j.dtd"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span class="tag">&lt;</span><span class="tag-name">log4j:configuration</span><span>&nbsp;</span><span class="attribute">xmlns:log4j</span><span>=</span><span class="attribute-value">"http://jakarta.apache.org/log4j/"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;==========================&nbsp;自定义输出格式说明================================&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;%p&nbsp;输出优先级，即DEBUG，INFO，WARN，ERROR，FATAL&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;#%r&nbsp;输出自应用启动到输出该log信息耗费的毫秒数&nbsp;&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;#%c&nbsp;输出所属的类目，通常就是所在类的全名&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;#%t&nbsp;输出产生该日志事件的线程名&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;#%n&nbsp;输出一个回车换行符，Windows平台为&#8220;\r\n&#8221;，Unix平台为&#8220;\n&#8221;&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;#%d&nbsp;输出日志时间点的日期或时间，默认格式为ISO8601，也可以在其后指定格式，比如：%d{yyy&nbsp;MMM&nbsp;dd&nbsp;HH:mm:ss,SSS}，输出类似：2002年10月18日&nbsp;22：10：28，921&nbsp;&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;#%l&nbsp;输出日志事件的发生位置，包括类目名、发生的线程，以及在代码中的行数。举例：Testlog4.main(TestLog4.java:10)&nbsp;&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;==========================================================================&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;==========================&nbsp;输出方式说明================================&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;Log4j提供的appender有以下几种:&nbsp;&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;org.apache.log4j.ConsoleAppender(控制台),&nbsp;&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;org.apache.log4j.FileAppender(文件),&nbsp;&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),&nbsp;&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)&nbsp;&nbsp;&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span class="comments">&lt;!--&nbsp;==========================================================================&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span class="comments">&lt;!--&nbsp;输出到日志文件&nbsp;&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">appender</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"filelog_appender"</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">"org.apache.log4j.RollingFileAppender"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;设置File参数：日志输出文件名&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"File"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"log/testlog4jxml_all.log"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;设置是否在重新启动服务时，在原有日志的基础添加新日志&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"Append"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"true"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;设置文件大小&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"MaxFileSize"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"1MB"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;设置文件备份&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"MaxBackupIndex"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"10000"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;设置输出文件项目和格式&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">layout</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">"org.apache.log4j.PatternLayout"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"ConversionPattern"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"%d{yyyy-MM-dd&nbsp;HH:mm:ss}&nbsp;%-5p&nbsp;(%c:%L)-&nbsp;%m%n"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">layout</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">appender</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span class="comments">&lt;!--&nbsp;输出到日志文件&nbsp;每天一个日志&nbsp;&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">appender</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"filelog_daily"</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">"org.apache.log4j.DailyRollingFileAppender"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"File"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"log/daily.log"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"DatePattern"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"'daily.'yyyy-MM-dd'.log'"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">layout</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">"org.apache.log4j.PatternLayout"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"ConversionPattern"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"[%d{yyyy-MM-dd&nbsp;HH:mm:ss\}&nbsp;%-5p]&nbsp;[%t]&nbsp;(%c:%L)&nbsp;-&nbsp;%m%n"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">layout</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">appender</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span class="comments">&lt;!--&nbsp;输出到控制台中&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">appender</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"console"</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">"org.apache.log4j.ConsoleAppender"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">layout</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">"org.apache.log4j.PatternLayout"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"ConversionPattern"</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"%d{yyyy-MM-dd&nbsp;HH:mm:ss}&nbsp;%-5p:&nbsp;%m%n"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;"%-5p:&nbsp;[%t]&nbsp;[%c{3}.%M(%L)]&nbsp;|&nbsp;%m%n"&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">layout</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">appender</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;</span><span class="tag-name">appender</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"EMAIL_QQ"</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">"org.apache.log4j.net.SMTPAppender"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"Threshold"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"INFO"</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"BufferSize"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"128"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"SMTPHost"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"smtp.qq.com"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"SMTPUsername"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"cjjvictory"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"SMTPPassword"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"***"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"From"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"cjjvictory@qq.com"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"To"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"cjjvictory@gmail.com"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"Subject"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"测试邮件发送"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"LocationInfo"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"true"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"SMTPDebug"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"true"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">layout</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">"org.cjj.log4j.extend.PatternLayout_zh"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"ConversionPattern"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"[%d{ISO8601}]&nbsp;%-5p&nbsp;%c&nbsp;%m%n"</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">layout</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">appender</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span class="comments">&lt;!---&nbsp;异步测试，当日志达到缓存区大小时候执行所包的appender&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">appender</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"ASYNC_test"</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">"org.apache.log4j.AsyncAppender"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">param</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"BufferSize"</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"10"</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">appender-ref</span><span>&nbsp;</span><span class="attribute">ref</span><span>=</span><span class="attribute-value">"EMAIL_QQ"</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">appender</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;</span><span class="comments">&lt;!--&nbsp;设置包限制输出的通道&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">category</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">"org.cjj"</span><span>&nbsp;</span><span class="attribute">additivity</span><span>=</span><span class="attribute-value">"false"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;日志输出级别，起码可以有5个级别，可以扩展自己的级别，邮件发送必须是ERROR级别不好用，所以最后自己扩展一个邮件发送级别&nbsp;--&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">level</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">"ERROR"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">appender-ref</span><span>&nbsp;</span><span class="attribute">ref</span><span>=</span><span class="attribute-value">"filelog_daily"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">appender-ref</span><span>&nbsp;</span><span class="attribute">ref</span><span>=</span><span class="attribute-value">"daily_appender"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">appender-ref</span><span>&nbsp;</span><span class="attribute">ref</span><span>=</span><span class="attribute-value">"console"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">appender-ref</span><span>&nbsp;</span><span class="attribute">ref</span><span>=</span><span class="attribute-value">"ASYNC_test"</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">category</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;/</span><span class="tag-name">log4j:configuration</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<pre class="xml" style="display: none" name="code">&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
&lt;!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"&gt;
&lt;log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"&gt;
&lt;!-- ========================== 自定义输出格式说明================================ --&gt;
&lt;!-- %p 输出优先级，即DEBUG，INFO，WARN，ERROR，FATAL --&gt;
&lt;!-- #%r 输出自应用启动到输出该log信息耗费的毫秒数  --&gt;
&lt;!-- #%c 输出所属的类目，通常就是所在类的全名 --&gt;
&lt;!-- #%t 输出产生该日志事件的线程名 --&gt;
&lt;!-- #%n 输出一个回车换行符，Windows平台为&#8220;\r\n&#8221;，Unix平台为&#8220;\n&#8221; --&gt;
&lt;!-- #%d 输出日志时间点的日期或时间，默认格式为ISO8601，也可以在其后指定格式，比如：%d{yyy MMM dd HH:mm:ss,SSS}，输出类似：2002年10月18日 22：10：28，921  --&gt;
&lt;!-- #%l 输出日志事件的发生位置，包括类目名、发生的线程，以及在代码中的行数。举例：Testlog4.main(TestLog4.java:10)  --&gt;
&lt;!-- ========================================================================== --&gt;
&lt;!-- ========================== 输出方式说明================================ --&gt;
&lt;!--	Log4j提供的appender有以下几种:  --&gt;
&lt;!-- org.apache.log4j.ConsoleAppender(控制台),  --&gt;
&lt;!-- org.apache.log4j.FileAppender(文件),  --&gt;
&lt;!-- org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), --&gt;
&lt;!-- org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),  --&gt;
&lt;!-- org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)   --&gt;
&lt;!-- ========================================================================== --&gt;
&lt;!-- 输出到日志文件  --&gt;
&lt;appender name="filelog_appender"
class="org.apache.log4j.RollingFileAppender"&gt;
&lt;!-- 设置File参数：日志输出文件名 --&gt;
&lt;param name="File" value="log/testlog4jxml_all.log" /&gt;
&lt;!-- 设置是否在重新启动服务时，在原有日志的基础添加新日志 --&gt;
&lt;param name="Append" value="true" /&gt;
&lt;!-- 设置文件大小 --&gt;
&lt;param name="MaxFileSize" value="1MB" /&gt;
&lt;!-- 设置文件备份 --&gt;
&lt;param name="MaxBackupIndex" value="10000" /&gt;
&lt;!-- 设置输出文件项目和格式 --&gt;
&lt;layout class="org.apache.log4j.PatternLayout"&gt;
&lt;param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p (%c:%L)- %m%n" /&gt;
&lt;/layout&gt;
&lt;/appender&gt;
&lt;!-- 输出到日志文件 每天一个日志  --&gt;
&lt;appender name="filelog_daily" class="org.apache.log4j.DailyRollingFileAppender"&gt;
&lt;param name="File" value="log/daily.log" /&gt;
&lt;param name="DatePattern" value="'daily.'yyyy-MM-dd'.log'" /&gt;
&lt;layout class="org.apache.log4j.PatternLayout"&gt;
&lt;param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss\} %-5p] [%t] (%c:%L) - %m%n" /&gt;
&lt;/layout&gt;
&lt;/appender&gt;
&lt;!-- 输出到控制台中 --&gt;
&lt;appender name="console" class="org.apache.log4j.ConsoleAppender"&gt;
&lt;layout class="org.apache.log4j.PatternLayout"&gt;
&lt;param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p: %m%n" /&gt;
&lt;!-- "%-5p: [%t] [%c{3}.%M(%L)] | %m%n" --&gt;
&lt;/layout&gt;
&lt;/appender&gt;
&lt;appender name="EMAIL_QQ" class="org.apache.log4j.net.SMTPAppender"&gt;
&lt;param name="Threshold" value="INFO"/&gt;
&lt;param name="BufferSize" value="128" /&gt;
&lt;param name="SMTPHost" value="smtp.qq.com" /&gt;
&lt;param name="SMTPUsername" value="cjjvictory" /&gt;
&lt;param name="SMTPPassword" value="***" /&gt;
&lt;param name="From" value="cjjvictory@qq.com" /&gt;
&lt;param name="To" value="cjjvictory@gmail.com" /&gt;
&lt;param name="Subject" value="测试邮件发送" /&gt;
&lt;param name="LocationInfo" value="true" /&gt;
&lt;param name="SMTPDebug" value="true" /&gt;
&lt;layout class="org.cjj.log4j.extend.PatternLayout_zh"&gt;
&lt;param name="ConversionPattern" value="[%d{ISO8601}] %-5p %c %m%n"/&gt;
&lt;/layout&gt;
&lt;/appender&gt;
&lt;!--- 异步测试，当日志达到缓存区大小时候执行所包的appender --&gt;
&lt;appender name="ASYNC_test" class="org.apache.log4j.AsyncAppender"&gt;
&lt;param name="BufferSize" value="10"/&gt;
&lt;appender-ref ref="EMAIL_QQ"/&gt;
&lt;/appender&gt;
&lt;!-- 设置包限制输出的通道 --&gt;
&lt;category name="org.cjj" additivity="false"&gt;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;!-- 日志输出级别，起码可以有5个级别，可以扩展自己的级别，邮件发送必须是ERROR级别不好用，所以最后自己扩展一个邮件发送级别 --&gt;
&lt;level value="ERROR" /&gt;
&lt;appender-ref ref="filelog_daily" /&gt;
&lt;appender-ref ref="daily_appender" /&gt;
&lt;appender-ref ref="console" /&gt;
&lt;appender-ref ref="ASYNC_test" /&gt;
&lt;/category&gt;
&lt;/log4j:configuration&gt;</pre>
<p>&nbsp;</p>
<p><strong>邮件乱码问题：</strong> </p>
<p>&nbsp;</p>
<p>邮件发送的布局采用了org.cjj.log4j.extend.PatternLayout_zh，因为原来的org.apache.log4j.PatternLayout会有乱码，所以重写一个方法既可。可能方法有点野蛮，所以那位有好的方法还请指教。</p>
<p>&nbsp;</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Java代码 <a title="复制代码" onclick="dp.sh.Toolbar.CopyToClipboard(this);return false;" href="http://jiajun.javaeye.com/blog/439104#"><img alt="复制代码" src="http://jiajun.javaeye.com/images/icon_copy.gif" /></a></div>
</div>
<ol class="dp-j">
    <li><span><span class="keyword">package</span><span>&nbsp;org.cjj.log4j.extend; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span class="keyword">import</span><span>&nbsp;org.apache.log4j.PatternLayout; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;PatternLayout_zh&nbsp;</span><span class="keyword">extends</span><span>&nbsp;PatternLayout &nbsp;&nbsp;</span></span></li>
    <li><span>{ &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="annotation">@Override</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;String&nbsp;getContentType() &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="string">"text/html;charset=GBK"</span><span>; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
<pre class="java" style="display: none" name="code">package org.cjj.log4j.extend;
import org.apache.log4j.PatternLayout;
public class PatternLayout_zh extends PatternLayout
{
@Override
public String getContentType()
{
return "text/html;charset=GBK";
}
}</pre>
&nbsp; </div>
<img src ="http://www.blogjava.net/caizh2009/aggbug/290021.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/caizh2009/" target="_blank">小菜毛毛</a> 2009-08-06 08:41 <a href="http://www.blogjava.net/caizh2009/archive/2009/08/06/290021.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>