﻿<?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-polarwind</title><link>http://www.blogjava.net/polarwind/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 05 May 2026 23:43:48 GMT</lastBuildDate><pubDate>Tue, 05 May 2026 23:43:48 GMT</pubDate><ttl>60</ttl><item><title>关于log4j(一)----使用</title><link>http://www.blogjava.net/polarwind/archive/2005/10/22/16413.html</link><dc:creator>太阳风</dc:creator><author>太阳风</author><pubDate>Sat, 22 Oct 2005 05:03:00 GMT</pubDate><guid>http://www.blogjava.net/polarwind/archive/2005/10/22/16413.html</guid><wfw:comment>http://www.blogjava.net/polarwind/comments/16413.html</wfw:comment><comments>http://www.blogjava.net/polarwind/archive/2005/10/22/16413.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/polarwind/comments/commentRss/16413.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/polarwind/services/trackbacks/16413.html</trackback:ping><description><![CDATA[<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最近正在做一个项目，其中要使用log4j，把我对它的一些了解和看法在这里写出来，供大家参考。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;今天只讨论log4j的使用。<BR><BR></P>
<H3>一：配置</H3><BR>
<P>A:)在Web Application 中使用log4j<BR>Step 1:<BR>配置log4j配置文件<BR>=========================<BR># Set root logger level to DEBUG and its only appender to A1<BR>#log4j中有五级logger<BR>#FATAL0<BR>#ERROR3<BR>#WARN4<BR>#INFO6<BR>#DEBUG7<BR>log4j.rootLogger=DEBUG, A1<BR># A1 is set to be a ConsoleAppender.<BR>#log4j中Appender有几层<BR>#ConsoleAppender输出到控制台<BR>log4j.appender.A1=org.apache.log4j.ConsoleAppender </P>
<P># A1 uses PatternLayout.<BR>log4j.appender.A1.layout=org.apache.log4j.PatternLayout<BR>#输出格式 具体查看log4j javadoc org.apache.log4j.PatternLayout<BR>#d 时间 ....<BR>log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n </P>
<P>================================另外一种配置<BR>log4j.rootLogger=debug, stdout, R </P>
<P>log4j.appender.stdout=org.apache.log4j.ConsoleAppender<BR>log4j.appender.stdout.layout=org.apache.log4j.PatternLayout </P>
<P># Pattern to output the caller's file name and line number.<BR>log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n<BR>#R 输出到文件<BR>log4j.appender.R=org.apache.log4j.RollingFileAppender<BR>log4j.appender.R.File=example.log </P>
<P>log4j.appender.R.MaxFileSize=100KB<BR># Keep one backup file<BR>log4j.appender.R.MaxBackupIndex=1 </P>
<P>log4j.appender.R.layout=org.apache.log4j.PatternLayout<BR>log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n </P>
<H4>Step 2:写启动的Servlet </H4>
<P>public class InitServlet extends HttpServlet { </P>
<P>public void init() {<BR>ServletContext sct = getServletContext();<BR>String prefix = sct.getRealPath("/");<BR>//log4j 配置文件存放目录<BR>System.out.println("[....Log4j]: The Root Path: " + prefix);<BR>System.out.println("[....Log4j]: InitServlet init start...");<BR>String file = getInitParameter("log4j");<BR>//log4j 配置文件<BR>if (file != null) {<BR>PropertyConfigurator.configure(prefix + file);<BR>//根据配置初始化log4j<BR>} </P>
<P>System.out.println("[....Log4j]: InitServlet Init Sucess..."); </P>
<P>} </P>
<P>public void doGet(HttpServletRequest req, HttpServletResponse res) { </P>
<P>} </P>
<P>public void doPost(HttpServletRequest req, HttpServletResponse res) { </P>
<P>}<BR>} </P>
<P>B:在一般的IDE中使用log4j,因为使用log4j需要做一些初始化，在Web Application<BR>中这一部分初始化是有AppServer 启动是加载的。在IDE中，则我们在使用log4j<BR>之前需要自己配置一下。<BR>如下文件：<BR>public final class Lo4jTest {<BR>private static String CLASS_NAME = "com.bingo.test.Lo4jTest";<BR>private static Logger log = Logger.getLogger(CLASS_NAME);<BR>//在Web Application 中下面的pattern是在log4j的配置文件中配置的。<BR>//现在我们手动配置<BR>private static String pattern="%-4r [%-t] [%p] [%c] [%x] - [%m]%n";<BR>private static String pattern2="%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n";<BR>//设置输出层<BR>//<BR>private static ConsoleAppender consAppender =<BR>new ConsoleAppender(<BR>new PatternLayout(pattern2));<BR>public static void main(String[] args) {<BR>//配置log4j<BR>BasicConfigurator.configure(consAppender);<BR>// void configure(Appender appender);<BR>// void configure();<BR>//配置时log4j提供了两种方式<BR>//后一种比较简单，输出的信息不够详细<BR>//我们可以使用前一种输出我们希望的格式<BR>log.debug("Log4j Debug.");<BR>log.error("Log4j Error.");<BR>log.info("Log4j Info.");<BR>log.fatal("Log4j Fatal.");<BR>}<BR>}<BR>//使用pattern2上面的输出结果如下<BR>2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[DEBUG] Log4j Debug.<BR>2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[ERROR] Log4j Error.<BR>2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[INFO] Log4j Info.<BR>2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[FATAL] Log4j Fatal.<BR>//假如我们使用pattern输出如下:<BR>0 [main] [DEBUG] [com.bingo.test.Lo4jTest] [] - [Log4j Debug.]<BR>0 [main] [ERROR] [com.bingo.test.Lo4jTest] [] - [Log4j Error.]<BR>0 [main] [INFO] [com.bingo.test.Lo4jTest] [] - [Log4j Info.]<BR>0 [main] [FATAL] [com.bingo.test.Lo4jTest] [] - [Log4j Fatal.] </P>
<H3><BR>二：使用log4j<BR>在实际使用过程中其实非常简单 </H3>
<H5>1:)如下定义log</H5>
<P>private static String CLASS_NAME = "com.bingo.test.Lo4jTest";<BR>//log4j1.2<BR>private static Logger log = Logger.getLogger(CLASS_NAME);<BR></P>
<H5>2:)写日志</H5><BR>
<P>log.debug("Log4j Debug.");<BR>log.error("Log4j Error.");<BR>log.info("Log4j Info.");<BR>log.fatal("Log4j Fatal.");<BR>//void debug(Object message)<BR>&nbsp; //Log a message object with the DEBUG level.<BR>&nbsp; //void debug(Object message, Throwable t)<BR>&nbsp; //Log a message object with the DEBUG level including the<BR>&nbsp; //stack trace of the Throwable t passed as parameter. </P>
<H3>三：注意事项</H3><BR>
<P>1:在具体使用中注意不同的信息使用不同的log方式，选择debug,error,<BR>info,fatal中的一种，以后可以根据需要屏蔽部分输出<BR>2:开发过程中尽量输出到控制台，运行过程中则修改配置使其输出到文件.<BR>3:定义log尽量使用文件名作为参数，这样容易查找错误.</P>
<H5></H5>
<H5></H5><img src ="http://www.blogjava.net/polarwind/aggbug/16413.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/polarwind/" target="_blank">太阳风</a> 2005-10-22 13:03 <a href="http://www.blogjava.net/polarwind/archive/2005/10/22/16413.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开卷明宗</title><link>http://www.blogjava.net/polarwind/archive/2005/10/19/16048.html</link><dc:creator>太阳风</dc:creator><author>太阳风</author><pubDate>Wed, 19 Oct 2005 11:40:00 GMT</pubDate><guid>http://www.blogjava.net/polarwind/archive/2005/10/19/16048.html</guid><wfw:comment>http://www.blogjava.net/polarwind/comments/16048.html</wfw:comment><comments>http://www.blogjava.net/polarwind/archive/2005/10/19/16048.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/polarwind/comments/commentRss/16048.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/polarwind/services/trackbacks/16048.html</trackback:ping><description><![CDATA[<P>很多同学都在做技术，这里就是方便大家的一个地方。平时谈谈大家的对技术的看法和感受；谈谈可能遇到问题的技术细节；谈谈项目反思，等等。希望能能互惠大家。</P><img src ="http://www.blogjava.net/polarwind/aggbug/16048.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/polarwind/" target="_blank">太阳风</a> 2005-10-19 19:40 <a href="http://www.blogjava.net/polarwind/archive/2005/10/19/16048.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>