﻿<?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/jvict/category/34418.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 05 Sep 2008 06:53:48 GMT</lastBuildDate><pubDate>Fri, 05 Sep 2008 06:53:48 GMT</pubDate><ttl>60</ttl><item><title>在java中使用log4j记录日志</title><link>http://www.blogjava.net/jvict/articles/227176.html</link><dc:creator>Documents</dc:creator><author>Documents</author><pubDate>Fri, 05 Sep 2008 03:57:00 GMT</pubDate><guid>http://www.blogjava.net/jvict/articles/227176.html</guid><wfw:comment>http://www.blogjava.net/jvict/comments/227176.html</wfw:comment><comments>http://www.blogjava.net/jvict/articles/227176.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jvict/comments/commentRss/227176.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jvict/services/trackbacks/227176.html</trackback:ping><description><![CDATA[<p>http://blog.csdn.net/peirenlei/archive/2006/11/06/1369142.aspx<br />
<br />
原理：<br />
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的，它可接key=value格式的设置或xml格式的设置信息。通过配置，可以创建出Log4J的运行环境。<br />
<br />
步骤：<br />
1. 配置文件<br />
Log4J配置文件的基本格式如下： <br />
<br />
#配置根Logger<br />
log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , &#8230;<br />
<br />
#配置日志信息输出目的地Appender<br />
log4j.appender.appenderName = fully.qualified.name.of.appender.class <br />
　　log4j.appender.appenderName.option1 = value1 <br />
　　&#8230; <br />
　　log4j.appender.appenderName.optionN = valueN <br />
<br />
#配置日志信息的格式（布局）<br />
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class <br />
　　log4j.appender.appenderName.layout.option1 = value1 <br />
　　&#8230; <br />
　　log4j.appender.appenderName.layout.optionN = valueN <br />
其中 [level] 是日志输出级别，共有5级：<br />
FATAL 0 <br />
ERROR 3 <br />
WARN 4 <br />
INFO 6 <br />
DEBUG 7 <br />
<br />
Appender 为日志输出目的地，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（将日志信息以流格式发送到任意指定的地方） <br />
Layout：日志输出格式，Log4j提供的layout有以下几种：<br />
org.apache.log4j.HTMLLayout（以HTML表格形式布局），<br />
org.apache.log4j.PatternLayout（可以灵活地指定布局模式），<br />
org.apache.log4j.SimpleLayout（包含日志信息的级别和信息字符串），<br />
org.apache.log4j.TTCCLayout（包含日志产生的时间、线程、类别等等信息） <br />
打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息，如下:<br />
　　%m 输出代码中指定的消息<br />
　　%p 输出优先级，即DEBUG，INFO，WARN，ERROR，FATAL <br />
　　%r 输出自应用启动到输出该log信息耗费的毫秒数 <br />
　　%c 输出所属的类目，通常就是所在类的全名 <br />
　　%t 输出产生该日志事件的线程名 <br />
　　%n 输出一个回车换行符，Windows平台为&#8220;\r\n&#8221;，Unix平台为&#8220;\n&#8221; <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 />
2. 在代码中初始化Logger: <br />
1） 在程序中调用BasicConfigurator.configure()方法：给根记录器增加一个ConsoleAppender，输出格式通过 PatternLayout设为"%-4r [%t] %-5p %c %x - %m%n"，还有根记录器的默认级别是Level.DEBUG. <br />
2）配置放在文件里，通过命令行参数传递文件名字，通过PropertyConfigurator.configure(args[x])解析并配置；<br />
3）配置放在文件里，通过环境变量传递文件名等信息，利用log4j默认的初始化过程解析并配置；<br />
4）配置放在文件里，通过应用服务器配置传递文件名等信息，利用一个特殊的servlet来完成配置。<br />
<br />
3. 为不同的 Appender 设置日志输出级别：<br />
当调试系统时，我们往往注意的只是异常级别的日志输出，但是通常所有级别的输出都是放在一个文件里的，如果日志输出的级别是BUG！？那就慢慢去找吧。<br />
这时我们也许会想要是能把异常信息单独输出到一个文件里该多好啊。当然可以，Log4j已经提供了这样的功能，我们只需要在配置中修改Appender的Threshold 就能实现,比如下面的例子：<br />
<br />
[配置文件]<br />
### set log levels ###<br />
log4j.rootLogger = debug , stdout , D , E<br />
<br />
### 输出到控制台 ###<br />
log4j.appender.stdout = org.apache.log4j.ConsoleAppender<br />
log4j.appender.stdout.Target = System.out<br />
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout<br />
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n<br />
<br />
### 输出到日志文件 ###<br />
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender<br />
log4j.appender.D.File = logs/log.log<br />
log4j.appender.D.Append = true<br />
log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志<br />
log4j.appender.D.layout = org.apache.log4j.PatternLayout<br />
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n<br />
<br />
### 保存异常信息到单独文件 ###<br />
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender<br />
log4j.appender.E.File = logs/error.log ## 异常日志文件名<br />
log4j.appender.E.Append = true<br />
log4j.appender.E.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!<br />
log4j.appender.E.layout = org.apache.log4j.PatternLayout<br />
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n <br />
[代码中使用] <br />
public class TestLog4j {<br />
public static void main(String[] args) {<br />
PropertyConfigurator.configure( " D:/Code/conf/log4j.properties " );<br />
Logger logger = Logger.getLogger(TestLog4j. class );<br />
logger.debug( " debug " );<br />
logger.error( " error " );<br />
} <br />
} <br />
运行一下，看看异常信息是不是保存在了一个单独的文件error.log中。<br />
</p>
<p>&nbsp;</p>
<p><br />
&nbsp;</p>
<p>&nbsp;</p>
<h2><span style="font-weight: bold; text-decoration: underline">log4j在web project中的应用</span><br />
</h2>
<p>将log4j-1.2.8.jar放入WEB-INF/lib下，并在eclipse里log4j-1.2.8.jar这个包引入(在左边目录下上右键点击工程目录-&gt;属性-&gt;java build path-&gt;Libraries-&gt;add jars.. )</p>
<p>InitServlet的原代码如下：<br />
</p>
<p>&nbsp;</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: rgb(230,230,230) 0% 50%; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; padding-top: 4px; border-bottom: windowtext 0.5pt solid; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">
<div><span style="color: rgb(0,0,255)">package</span><span style="color: rgb(0,0,0)">&nbsp;servlets;<br />
<br />
</span><span style="color: rgb(0,0,255)">import</span><span style="color: rgb(0,0,0)">&nbsp;java.io.IOException;<br />
</span><span style="color: rgb(0,0,255)">import</span><span style="color: rgb(0,0,0)">&nbsp;javax.servlet.ServletContext;<br />
</span><span style="color: rgb(0,0,255)">import</span><span style="color: rgb(0,0,0)">&nbsp;javax.servlet.ServletException;<br />
</span><span style="color: rgb(0,0,255)">import</span><span style="color: rgb(0,0,0)">&nbsp;javax.servlet.http.HttpServlet;<br />
</span><span style="color: rgb(0,0,255)">import</span><span style="color: rgb(0,0,0)">&nbsp;javax.servlet.http.HttpServletRequest;<br />
</span><span style="color: rgb(0,0,255)">import</span><span style="color: rgb(0,0,0)">&nbsp;javax.servlet.http.HttpServletResponse;<br />
<br />
</span><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.PropertyConfigurator&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<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;InitServlet&nbsp;</span><span style="color: rgb(0,0,255)">extends</span><span style="color: rgb(0,0,0)">&nbsp;HttpServlet&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">static</span><span style="color: rgb(0,0,0)">&nbsp;Logger&nbsp;logger&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;Logger.getLogger(loginservlet.</span><span style="color: rgb(0,0,255)">class</span><span style="color: rgb(0,0,0)">.getName());<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">/**</span><span style="color: rgb(0,128,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">*/</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">private</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)">final</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">long</span><span style="color: rgb(0,0,0)">&nbsp;serialVersionUID&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)">1L</span><span style="color: rgb(0,0,0)">;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">/**</span><span style="color: rgb(0,128,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Constructor&nbsp;of&nbsp;the&nbsp;object.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">*/</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">public</span><span style="color: rgb(0,0,0)">&nbsp;InitServlet()&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">/**</span><span style="color: rgb(0,128,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Destruction&nbsp;of&nbsp;the&nbsp;servlet.&nbsp;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">*/</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&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)">void</span><span style="color: rgb(0,0,0)">&nbsp;destroy()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">super</span><span style="color: rgb(0,0,0)">.destroy();&nbsp;</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;Just&nbsp;puts&nbsp;"destroy"&nbsp;string&nbsp;in&nbsp;log<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;Put&nbsp;your&nbsp;code&nbsp;here</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">/**</span><span style="color: rgb(0,128,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;The&nbsp;doGet&nbsp;method&nbsp;of&nbsp;the&nbsp;servlet.&nbsp;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;This&nbsp;method&nbsp;is&nbsp;called&nbsp;when&nbsp;a&nbsp;form&nbsp;has&nbsp;its&nbsp;tag&nbsp;value&nbsp;method&nbsp;equals&nbsp;to&nbsp;get.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128,128,128)">@param</span><span style="color: rgb(0,128,0)">&nbsp;request&nbsp;the&nbsp;request&nbsp;send&nbsp;by&nbsp;the&nbsp;client&nbsp;to&nbsp;the&nbsp;server<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128,128,128)">@param</span><span style="color: rgb(0,128,0)">&nbsp;response&nbsp;the&nbsp;response&nbsp;send&nbsp;by&nbsp;the&nbsp;server&nbsp;to&nbsp;the&nbsp;client<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128,128,128)">@throws</span><span style="color: rgb(0,128,0)">&nbsp;ServletException&nbsp;if&nbsp;an&nbsp;error&nbsp;occurred<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128,128,128)">@throws</span><span style="color: rgb(0,128,0)">&nbsp;IOException&nbsp;if&nbsp;an&nbsp;error&nbsp;occurred<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">*/</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&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)">void</span><span style="color: rgb(0,0,0)">&nbsp;doGet(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">throws</span><span style="color: rgb(0,0,0)">&nbsp;ServletException,&nbsp;IOException&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">/**</span><span style="color: rgb(0,128,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;The&nbsp;doPost&nbsp;method&nbsp;of&nbsp;the&nbsp;servlet.&nbsp;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;This&nbsp;method&nbsp;is&nbsp;called&nbsp;when&nbsp;a&nbsp;form&nbsp;has&nbsp;its&nbsp;tag&nbsp;value&nbsp;method&nbsp;equals&nbsp;to&nbsp;post.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128,128,128)">@param</span><span style="color: rgb(0,128,0)">&nbsp;request&nbsp;the&nbsp;request&nbsp;send&nbsp;by&nbsp;the&nbsp;client&nbsp;to&nbsp;the&nbsp;server<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128,128,128)">@param</span><span style="color: rgb(0,128,0)">&nbsp;response&nbsp;the&nbsp;response&nbsp;send&nbsp;by&nbsp;the&nbsp;server&nbsp;to&nbsp;the&nbsp;client<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128,128,128)">@throws</span><span style="color: rgb(0,128,0)">&nbsp;ServletException&nbsp;if&nbsp;an&nbsp;error&nbsp;occurred<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128,128,128)">@throws</span><span style="color: rgb(0,128,0)">&nbsp;IOException&nbsp;if&nbsp;an&nbsp;error&nbsp;occurred<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">*/</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&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)">void</span><span style="color: rgb(0,0,0)">&nbsp;doPost(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">throws</span><span style="color: rgb(0,0,0)">&nbsp;ServletException,&nbsp;IOException&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">/**</span><span style="color: rgb(0,128,0)"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Initialization&nbsp;of&nbsp;the&nbsp;servlet.&nbsp;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128,128,128)">@throws</span><span style="color: rgb(0,128,0)">&nbsp;ServletException&nbsp;if&nbsp;an&nbsp;error&nbsp;occure<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">*/</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;&nbsp;&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)">void</span><span style="color: rgb(0,0,0)">&nbsp;init()&nbsp;</span><span style="color: rgb(0,0,255)">throws</span><span style="color: rgb(0,0,0)">&nbsp;ServletException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ServletContext&nbsp;sct&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;getServletContext();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;prefix&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;sct.getRealPath(</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)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;file&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;getInitParameter(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">log4j</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)">(file</span><span style="color: rgb(0,0,0)">!=</span><span style="color: rgb(0,0,255)">null</span><span style="color: rgb(0,0,0)">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PropertyConfigurator.configure(prefix</span><span style="color: rgb(0,0,0)">+</span><span style="color: rgb(0,0,0)">file);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">else</span><span style="color: rgb(0,0,0)">{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PropertyConfigurator.configure(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">c:/log4j.properties</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.info(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">InitServlet初始化完成</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
}<br />
</span></div>
</div>
<p>&nbsp;</p>
<p><br />
</p>
<p>在web.xml中加入：</p>
<p>&nbsp;</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: rgb(230,230,230) 0% 50%; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; padding-top: 4px; border-bottom: windowtext 0.5pt solid; height: 208px; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">
<div><span style="color: rgb(0,0,0)">&nbsp; &lt;servlet&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;InitServlet&lt;/servlet-name&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;servlet-class&gt;com.prl.servlets.InitServlet&lt;/servlet-class&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;param-name&gt;log4j&lt;/param-name&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;param-value&gt;log4j.properties&lt;/param-value&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br />
&nbsp; &lt;/servlet&gt;</span></div>
<div><span style="color: rgb(0,0,0)">&nbsp; &lt;servlet-mapping&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;servlet-name&gt;InitServlet&lt;/servlet-name&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/servlet/InitServlet&lt;/url-pattern&gt;<br />
&nbsp; &lt;/servlet-mapping&gt;</span></div>
</div>
<p>&nbsp;</p>
<p>&nbsp;使用：</p>
<p>&nbsp;</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: rgb(230,230,230) 0% 50%; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; padding-top: 4px; border-bottom: windowtext 0.5pt solid; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">
<div><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><span style="color: rgb(0,0,0)">import&nbsp;org.apache.log4j.Logger&nbsp;;&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />在类里面：<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0,0,255)">static</span><span style="color: rgb(0,0,0)">&nbsp;Logger&nbsp;logger&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;Logger.getLogger(loginservlet.</span><span style="color: rgb(0,0,255)">class</span><span style="color: rgb(0,0,0)">.getName());<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />logger.info(</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)">);&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></span></div>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>log4j.properties内容如下：</p>
<p>&nbsp;</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: rgb(230,230,230) 0% 50%; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; padding-top: 4px; border-bottom: windowtext 0.5pt solid; moz-background-clip: -moz-initial; moz-background-origin: -moz-initial; moz-background-inline-policy: -moz-initial">
<div><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)">&nbsp;stdout</span><span style="color: rgb(0,0,0)">,</span><span style="color: rgb(0,0,0)">&nbsp;R<br />
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)">&nbsp;R<br />
<br />
log4j.appender.stdout</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">org.apache.log4j.ConsoleAppender<br />
log4j.appender.stdout.layout</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">org.apache.log4j.PatternLayout<br />
<br />
#&nbsp;Pattern&nbsp;to&nbsp;output&nbsp;the&nbsp;caller's&nbsp;file&nbsp;name&nbsp;and&nbsp;line&nbsp;number.<br />
log4j.appender.stdout.layout.ConversionPattern</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">%5p&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;(%F:%L)&nbsp;-&nbsp;%m%n<br />
#R&nbsp;&#202;&#228;&#179;&#246;&#181;&#189;&#206;&#196;&#188;&#254;<br />
log4j.appender.R</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">org.apache.log4j.RollingFileAppender<br />
log4j.appender.R.File</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">c:/example.log<br />
<br />
log4j.appender.R.MaxFileSize</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">100KB<br />
#&nbsp;Keep&nbsp;one&nbsp;backup&nbsp;file<br />
log4j.appender.R.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 />
<br />
log4j.appender.R.layout</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">org.apache.log4j.PatternLayout<br />
log4j.appender.R.layout.ConversionPattern</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">%-d{yyyy-MM-dd&nbsp;HH:mm:ss}&nbsp;%c-&gt;%t:%-4r&nbsp;%p&nbsp;-&nbsp;%m%n <br />
</span></div>
</div>
<img src ="http://www.blogjava.net/jvict/aggbug/227176.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jvict/" target="_blank">Documents</a> 2008-09-05 11:57 <a href="http://www.blogjava.net/jvict/articles/227176.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>