﻿<?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-aldream-文章分类-Log4j</title><link>http://www.blogjava.net/aldreamlau/category/27236.html</link><description>me</description><language>zh-cn</language><lastBuildDate>Mon, 12 Nov 2007 22:53:25 GMT</lastBuildDate><pubDate>Mon, 12 Nov 2007 22:53:25 GMT</pubDate><ttl>60</ttl><item><title>嵌套诊断环境NDC </title><link>http://www.blogjava.net/aldreamlau/articles/159731.html</link><dc:creator>aldream</dc:creator><author>aldream</author><pubDate>Sun, 11 Nov 2007 06:51:00 GMT</pubDate><guid>http://www.blogjava.net/aldreamlau/articles/159731.html</guid><wfw:comment>http://www.blogjava.net/aldreamlau/comments/159731.html</wfw:comment><comments>http://www.blogjava.net/aldreamlau/articles/159731.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aldreamlau/comments/commentRss/159731.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aldreamlau/services/trackbacks/159731.html</trackback:ping><description><![CDATA[<span id="ArticleContent1_ArticleContent1_lblContent"><span class="myp11"><font id="zoom">在
多用户并发的环境下，通常是由不同的线程分别处理不同的客户端请求。此时要在日志信息中区分出不同的客户端，你可以为每一个线程生成一个Logger，从
而从一堆日志信息中区分出哪些信息是属于哪个线程的，但这种方式并不高效。Log4J巧妙地使用了Neil
Harrison提出的&#8220;NDC（嵌套诊断环境）&#8221;机制来解决这个问题。Log4J为同一类别的线程生成一个Logger，多个线程共享使用，而它仅在日
志信息中添加能够区分不同线程的信息。NDC是什么？举例来说，如果一个Servlet接到并发请求时，为每一个客户端创建一个新的线程，然后分配一个用
于保存该请求上下文的NDC堆栈。该上下文可能是发出请求的主机名、IP地址或其它任何可以用于标识该请求的信息。这样，由于不同的客户端处理线程具有不
同的NDC堆栈，即使这个Servlet同时生成多个线程处理不同的请求，这些日志信息仍然可以区分出来，就好像Log4J为每一个线程都单独生成了一个
Logger实例一样。在Log4J中是通过org.apache.log4j.NDC实现这种机制的。使用NDC的方法也很简单，步骤如下： <br />
<br />
1. 在进入一个环境时调用NDC.push(String)，然后创建一个NDC；
<br />
<br />
2. 所做的日志操作输出中包括了NDC的信息；
<br />
<br />
3. 离开该环境时调用NDC.pop方法；
<br />
<br />
4. 当从一个线程中退出时调用NDC.remove方法，以便释放资源。
<br />
<br />
下面是一个模拟记录来自不同客户端请求事件的例子，代码如下：<br />
</font></span></span>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;org.apache.log4j.Logger;<br />
</span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;org.apache.log4j.NDC;<br />
</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;TestNDC&nbsp;{<br />
&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;Logger&nbsp;log&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;Logger.getLogger(TestNDC.</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">.getName());<br />
&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;main(String[]&nbsp;args)&nbsp;{<br />
&nbsp;&nbsp;log.info(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Make&nbsp;sure&nbsp;%x&nbsp;is&nbsp;in&nbsp;your&nbsp;layout&nbsp;pattern!</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />
&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;从客户端获得IP地址的例子</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;String[]&nbsp;ips&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;{</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">192.168.0.10</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">192.168.0.27</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">};<br />
&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);">&nbsp;(</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">&nbsp;i&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">;&nbsp;i</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">ips.length&nbsp;;&nbsp;i</span><span style="color: rgb(0, 0, 0);">++</span><span style="color: rgb(0, 0, 0);">)&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;模拟一个运行方法</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;将IP放进&nbsp;NDC中</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;NDC.push(ips[i]);<br />
&nbsp;&nbsp;&nbsp;log.info(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">A&nbsp;NEW&nbsp;client&nbsp;connected,&nbsp;who's&nbsp;ip&nbsp;should&nbsp;appear&nbsp;in&nbsp;this&nbsp;log&nbsp;message.</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />
&nbsp;&nbsp;&nbsp;NDC.pop();<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;NDC.remove();<br />
&nbsp;&nbsp;log.info(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Finished.</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />
&nbsp;}<br />
}</span></div>
<span id="ArticleContent1_ArticleContent1_lblContent"><span class="myp11"><font id="zoom">注意配置文件中的布局格式中一定要加上%x。系统输出如下：<br />
</font></span></span>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">INFO&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">&nbsp;Make&nbsp;sure&nbsp;</span><span style="color: rgb(0, 0, 0);">%</span><span style="color: rgb(0, 0, 0);">x&nbsp;is&nbsp;in&nbsp;your&nbsp;layout&nbsp;pattern</span><span style="color: rgb(0, 0, 0);">!</span><span style="color: rgb(0, 0, 0);"><br />
INFO&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">192.168</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">0.10</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">&nbsp;A&nbsp;NEW&nbsp;client&nbsp;connected,&nbsp;who</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">s&nbsp;ip&nbsp;should&nbsp;appear&nbsp;in&nbsp;this&nbsp;log&nbsp;</span><span style="color: rgb(0, 0, 0);">message.<br />
INFO&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">192.168</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">0.27</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">&nbsp;A&nbsp;NEW&nbsp;client&nbsp;connected,&nbsp;who</span><span style="color: rgb(0, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">s&nbsp;ip&nbsp;should&nbsp;appear&nbsp;in&nbsp;this&nbsp;log&nbsp;</span><span style="color: rgb(0, 0, 0);">message.<br />
INFO&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">&nbsp;Finished.</span></div>
<br />
<img src ="http://www.blogjava.net/aldreamlau/aggbug/159731.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aldreamlau/" target="_blank">aldream</a> 2007-11-11 14:51 <a href="http://www.blogjava.net/aldreamlau/articles/159731.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Log4j优化</title><link>http://www.blogjava.net/aldreamlau/articles/159642.html</link><dc:creator>aldream</dc:creator><author>aldream</author><pubDate>Sat, 10 Nov 2007 15:31:00 GMT</pubDate><guid>http://www.blogjava.net/aldreamlau/articles/159642.html</guid><wfw:comment>http://www.blogjava.net/aldreamlau/comments/159642.html</wfw:comment><comments>http://www.blogjava.net/aldreamlau/articles/159642.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aldreamlau/comments/commentRss/159642.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aldreamlau/services/trackbacks/159642.html</trackback:ping><description><![CDATA[一个经常引用的依靠于logging的参数是可以计算的花费。这是一个合理的概念，一个适度的应用程序可能产生成千上万个日志请求。许多努力花在测量和调试logging的优化上。Log4j要求快速和弹性：速度最重要，弹性是其次。<br />
用户应该注意随后的优化建议。<br />
<strong><a target=""><span style="color: rgb(118, 0, 0);">9.1 日志为禁用时，日志的优化</span></a></strong><br />
当日志被彻底的关闭，一个日志请求的花费等于一个方法的调用加上整数的比较时间。<br />
在233mhz的Pentium II 机器上这个花费通常在5-50纳秒之间。<br />
然而，方法调用包括参数构建的隐藏花费。<br />
例如，对于logger cat，<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">logger.debug(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Entry&nbsp;number:&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">&nbsp;i&nbsp;</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;is&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">&nbsp;String.valueOf(entry));</span></div>
引起了构建信息参数的花费，例如，转化整数i和entry到一个string，并且连接中间字符串，不管信息是否被输出。这个参数的构建花费可能是很高，它主要决定于被调用的参数的大小。<br />
避免参数构建的花费应如下，<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(logger.isDebugEnabled()&nbsp;{<br />
logger.debug(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Entry&nbsp;number:&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">&nbsp;i&nbsp;</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;is&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">&nbsp;String.valueOf(entry[i]));<br />
}</span></div>
<br />
如果logger的debug被关闭这将不会招致参数构建的花费。另一方面，如果logger是debug的话，它将产生两次判断 logger是否能用的花费。一次是在debugenabled，一次是debug。这是无关紧要的，因为判断日志是否可用只占日志实际花费时间的约1%。<br />
在Log4j里，日志请求在Logger 类的实例里。Logger 是一个类，而不是一个接口。这大量的减少了在方法调用上的弹性化的花费。<br />
当然用户采用预处理或编译时间技术去编译出所有的日志声明。这将导致完美的执行成效。<br />
然而因为二进制应用程序不包括任何的日志声明的结果，日志不可能对那个二进制程序开启。以我的观点，以这种较大的代价来换取较小的性能优化是不值得的。<br />
<strong>9.2 当日志状态为启用时，日志的优化</strong><br />
这是本质上的优化logger的层次。当日志状态为开，Log4j依然需要比较请求的级别与logger的级别。然而，logger可能没有被安排一个级别；它们将从它们的father继承。这样，在继承之前，logger可能需要搜索它的祖先。<br />
这里有一个认真的努力使层次的搜索尽可能的快。例如，子logger仅仅连接到它的存在的father logger。<br />
在先前展示的BasicConfigurator 例子中，名为com.foo.bar 的logger是连接到根logger，因此绕过了不存在的logger com和com.foo。这将显著的改善执行的速度，特别是解析logger的层结构时。<br />
典型的层次结构的解析的花费是logger彻底关闭时的三倍。<br />
<strong>9.3 日志信息的输出时，日志的优化</strong><br />
这是主要花费在日志输出的格式化和发送它到它的输出源上。这里我们再一次的付出努力以使格式化执行的尽可能快。同appender一样。实际上典型的花费大约是100-300毫秒。<br />
详情看org.apache.log4.performance.Logging。<br />
虽然Log4j有许多特点，但是它的第一个设计目标还是速度。一些Log4j的组件已经被重写过很多次以改善性能。不过，投稿者经常提出了新的优化。你应该满意的知道，以SimpleLayout的配置执行测试已经展示了Log4j的输出同System.out.println一样快。<br />
<img src ="http://www.blogjava.net/aldreamlau/aggbug/159642.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aldreamlau/" target="_blank">aldream</a> 2007-11-10 23:31 <a href="http://www.blogjava.net/aldreamlau/articles/159642.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Log4j配置文件</title><link>http://www.blogjava.net/aldreamlau/articles/159483.html</link><dc:creator>aldream</dc:creator><author>aldream</author><pubDate>Fri, 09 Nov 2007 16:43:00 GMT</pubDate><guid>http://www.blogjava.net/aldreamlau/articles/159483.html</guid><wfw:comment>http://www.blogjava.net/aldreamlau/comments/159483.html</wfw:comment><comments>http://www.blogjava.net/aldreamlau/articles/159483.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aldreamlau/comments/commentRss/159483.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aldreamlau/services/trackbacks/159483.html</trackback:ping><description><![CDATA[<span style="font-family: 宋体;">下面的Log4J配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。</span>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><span style="color: rgb(0, 128, 128);">&nbsp;1</span><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: rgb(0, 0, 0);">log4j.rootLogger</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">DEBUG</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">CONSOLE</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">A1</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">im<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;2</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.addivity.org.apache</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">true<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;3</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />#&nbsp;应用于控制台<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;4</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.CONSOLE</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.ConsoleAppender<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;5</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.Threshold</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">DEBUG<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;6</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.CONSOLE.Target</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">System.out<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;7</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.CONSOLE.Encoding</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">GBK<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;8</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.CONSOLE.layout</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.PatternLayout<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;9</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.CONSOLE.layout.ConversionPattern</span><span style="color: rgb(0, 0, 0);">=</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">framework</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">&nbsp;%d&nbsp;-&nbsp;%c&nbsp;-%-4r&nbsp;</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">%t</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">&nbsp;%-5p&nbsp;%c&nbsp;%x&nbsp;-&nbsp;%m%n<br />
</span><span style="color: rgb(0, 128, 128);">10</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />#log4j.appender.CONSOLE.layout.ConversionPattern</span><span style="color: rgb(0, 0, 0);">=</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">start</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">%d{DATE}</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">DATE</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">%n%p</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">PRIORITY</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">%n%x</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">NDC</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">%n%t</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">THREAD</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">&nbsp;n%c</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">CATEGORY</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">%n%m</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">MESSAGE</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">%n%n<br />
</span><span style="color: rgb(0, 128, 128);">11</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />#应用于文件<br />
</span><span style="color: rgb(0, 128, 128);">12</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.FILE</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.FileAppender<br />
</span><span style="color: rgb(0, 128, 128);">13</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.FILE.File</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">file.log<br />
</span><span style="color: rgb(0, 128, 128);">14</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.FILE.Append</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">false<br />
</span><span style="color: rgb(0, 128, 128);">15</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.FILE.Encoding</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">GBK<br />
</span><span style="color: rgb(0, 128, 128);">16</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.FILE.layout</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.PatternLayout<br />
</span><span style="color: rgb(0, 128, 128);">17</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.FILE.layout.ConversionPattern</span><span style="color: rgb(0, 0, 0);">=</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">framework</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">&nbsp;%d&nbsp;-&nbsp;%c&nbsp;-%-4r&nbsp;</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">%t</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">&nbsp;%-5p&nbsp;%c&nbsp;%x&nbsp;-&nbsp;%m%n<br />
</span><span style="color: rgb(0, 128, 128);">18</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />#&nbsp;Use&nbsp;this&nbsp;layout&nbsp;for&nbsp;LogFactor&nbsp;</span><span style="color: rgb(0, 0, 0);">5</span><span style="color: rgb(0, 0, 0);">&nbsp;analysis<br />
</span><span style="color: rgb(0, 128, 128);">19</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />#&nbsp;应用于文件回滚<br />
</span><span style="color: rgb(0, 128, 128);">20</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.ROLLING_FILE</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.RollingFileAppender<br />
</span><span style="color: rgb(0, 128, 128);">21</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.ROLLING_FILE.Threshold</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">ERROR<br />
</span><span style="color: rgb(0, 128, 128);">22</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.ROLLING_FILE.File</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">rolling.log<br />
</span><span style="color: rgb(0, 128, 128);">23</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.ROLLING_FILE.Append</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">true<br />
</span><span style="color: rgb(0, 128, 128);">24</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.CONSOLE_FILE.Encoding</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">GBK<br />
</span><span style="color: rgb(0, 128, 128);">25</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.ROLLING_FILE.MaxFileSize</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">10KB<br />
</span><span style="color: rgb(0, 128, 128);">26</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.ROLLING_FILE.MaxBackupIndex</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">27</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.ROLLING_FILE.layout</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.PatternLayout<br />
</span><span style="color: rgb(0, 128, 128);">28</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.ROLLING_FILE.layout.ConversionPattern</span><span style="color: rgb(0, 0, 0);">=</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">framework</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">&nbsp;%d&nbsp;-&nbsp;%c&nbsp;-%-4r&nbsp;</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">%t</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">&nbsp;%-5p&nbsp;%c&nbsp;%x&nbsp;-&nbsp;%m%n<br />
</span><span style="color: rgb(0, 128, 128);">29</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />#应用于socket<br />
</span><span style="color: rgb(0, 128, 128);">30</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.SOCKET</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.RollingFileAppender<br />
</span><span style="color: rgb(0, 128, 128);">31</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.SOCKET.RemoteHost</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">localhost<br />
</span><span style="color: rgb(0, 128, 128);">32</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.SOCKET.Port</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">5001</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">33</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.SOCKET.LocationInfo</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">true<br />
</span><span style="color: rgb(0, 128, 128);">34</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />#&nbsp;Set&nbsp;up&nbsp;for&nbsp;Log&nbsp;Facter&nbsp;</span><span style="color: rgb(0, 0, 0);">5</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">35</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.SOCKET.layout</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.PatternLayout<br />
</span><span style="color: rgb(0, 128, 128);">36</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.SOCET.layout.ConversionPattern</span><span style="color: rgb(0, 0, 0);">=</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">start</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">%d{DATE}</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">DATE</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">%n%p</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">PRIORITY</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">%n%x</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">NDC</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">%n%t</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">THREAD</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">%n%c</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">CATEGORY</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">%n%m</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">MESSAGE</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">%n%n<br />
</span><span style="color: rgb(0, 128, 128);">37</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />#&nbsp;Log&nbsp;Factor&nbsp;</span><span style="color: rgb(0, 0, 0);">5</span><span style="color: rgb(0, 0, 0);">&nbsp;Appender<br />
</span><span style="color: rgb(0, 128, 128);">38</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.LF5_APPENDER</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.lf5.LF5Appender<br />
</span><span style="color: rgb(0, 128, 128);">39</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.LF5_APPENDER.MaxNumberOfRecords</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">2000</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">40</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />#&nbsp;发送日志给邮件<br />
</span><span style="color: rgb(0, 128, 128);">41</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.MAIL</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.net.SMTPAppender<br />
</span><span style="color: rgb(0, 128, 128);">42</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.MAIL.Threshold</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">FATAL<br />
</span><span style="color: rgb(0, 128, 128);">43</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.MAIL.BufferSize</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">10</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">44</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.MAIL.From</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">web@www.wuset.com<br />
</span><span style="color: rgb(0, 128, 128);">45</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.MAIL.SMTPHost</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">www.wusetu.com<br />
</span><span style="color: rgb(0, 128, 128);">46</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.MAIL.Subject</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">Log4J&nbsp;Message<br />
</span><span style="color: rgb(0, 128, 128);">47</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.MAIL.To</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">web@www.wusetu.com<br />
</span><span style="color: rgb(0, 128, 128);">48</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.MAIL.layout</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.PatternLayout<br />
</span><span style="color: rgb(0, 128, 128);">49</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.MAIL.layout.ConversionPattern</span><span style="color: rgb(0, 0, 0);">=</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">framework</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">&nbsp;%d&nbsp;-&nbsp;%c&nbsp;-%-4r&nbsp;</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">%t</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">&nbsp;%-5p&nbsp;%c&nbsp;%x&nbsp;-&nbsp;%m%n<br />
</span><span style="color: rgb(0, 128, 128);">50</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />#&nbsp;用于数据库<br />
</span><span style="color: rgb(0, 128, 128);">51</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.DATABASE</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.jdbc.JDBCAppender<br />
</span><span style="color: rgb(0, 128, 128);">52</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.DATABASE.URL</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">jdbc:mysql://localhost:</span><span style="color: rgb(0, 0, 0);">3306</span><span style="color: rgb(0, 0, 0);">/test<br />
</span><span style="color: rgb(0, 128, 128);">53</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.DATABASE.driver</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">com.mysql.jdbc.Driver<br />
</span><span style="color: rgb(0, 128, 128);">54</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.DATABASE.user</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">root<br />
</span><span style="color: rgb(0, 128, 128);">55</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.DATABASE.password</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">56</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.DATABASE.sql</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">INSERT&nbsp;INTO&nbsp;LOG4J&nbsp;(Message)&nbsp;VALUES&nbsp;('</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">framework</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">&nbsp;%d&nbsp;-&nbsp;%c&nbsp;-%-4r&nbsp;</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">%t</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">&nbsp;%-5p&nbsp;%c&nbsp;%x&nbsp;-&nbsp;%m%n')<br />
</span><span style="color: rgb(0, 128, 128);">57</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.DATABASE.layout</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.PatternLayout<br />
</span><span style="color: rgb(0, 128, 128);">58</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.DATABASE.layout.ConversionPattern</span><span style="color: rgb(0, 0, 0);">=</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">framework</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">&nbsp;%d&nbsp;-&nbsp;%c&nbsp;-%-4r&nbsp;</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">%t</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">&nbsp;%-5p&nbsp;%c&nbsp;%x&nbsp;-&nbsp;%m%n<br />
</span><span style="color: rgb(0, 128, 128);">59</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />#&nbsp;每天新建日志<br />
</span><span style="color: rgb(0, 128, 128);">60</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.A1</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.DailyRollingFileAppender<br />
</span><span style="color: rgb(0, 128, 128);">61</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.A1.File</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">log<br />
</span><span style="color: rgb(0, 128, 128);">62</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.A1.Encoding</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">GBK<br />
</span><span style="color: rgb(0, 128, 128);">63</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.A1.DatePattern</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">'.'yyyy-MM-dd<br />
</span><span style="color: rgb(0, 128, 128);">64</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.A1.layout</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.PatternLayout<br />
</span><span style="color: rgb(0, 128, 128);">65</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.A1.layout.ConversionPattern</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">%d{ABSOLUTE}&nbsp;%5p&nbsp;%c{</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">}:%L&nbsp;:&nbsp;%m%n<br />
</span><span style="color: rgb(0, 128, 128);">66</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />#自定义Appender<br />
</span><span style="color: rgb(0, 128, 128);">67</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.im&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;net.cybercorlin.util.logger.appender.IMAppender<br />
</span><span style="color: rgb(0, 128, 128);">68</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.im.host&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;mail.cybercorlin.net<br />
</span><span style="color: rgb(0, 128, 128);">69</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.im.username&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;username<br />
</span><span style="color: rgb(0, 128, 128);">70</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.im.password&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;password<br />
</span><span style="color: rgb(0, 128, 128);">71</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.im.recipient&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;corlin@cybercorlin.net<br />
</span><span style="color: rgb(0, 128, 128);">72</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.im.layout</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">org.apache.log4j.PatternLayout<br />
</span><span style="color: rgb(0, 128, 128);">73</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />log4j.appender.im.layout.ConversionPattern&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">framework</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">&nbsp;%d&nbsp;-&nbsp;%c&nbsp;-%-4r&nbsp;</span><span style="font-weight: bold; color: rgb(128, 0, 0);">[</span><span style="color: rgb(128, 0, 0);">%t</span><span style="font-weight: bold; color: rgb(128, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">&nbsp;%-5p&nbsp;%c&nbsp;%x&nbsp;-&nbsp;%m%n</span></div>
<img src ="http://www.blogjava.net/aldreamlau/aggbug/159483.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aldreamlau/" target="_blank">aldream</a> 2007-11-10 00:43 <a href="http://www.blogjava.net/aldreamlau/articles/159483.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>