﻿<?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-我爱JAVA-文章分类-Struts</title><link>http://www.blogjava.net/ybyb14/category/32118.html</link><description>JAVA技术</description><language>zh-cn</language><lastBuildDate>Wed, 11 Jun 2008 09:59:44 GMT</lastBuildDate><pubDate>Wed, 11 Jun 2008 09:59:44 GMT</pubDate><ttl>60</ttl><item><title>Log4j详细配置说明</title><link>http://www.blogjava.net/ybyb14/articles/207151.html</link><dc:creator>许明</dc:creator><author>许明</author><pubDate>Wed, 11 Jun 2008 09:00:00 GMT</pubDate><guid>http://www.blogjava.net/ybyb14/articles/207151.html</guid><wfw:comment>http://www.blogjava.net/ybyb14/comments/207151.html</wfw:comment><comments>http://www.blogjava.net/ybyb14/articles/207151.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ybyb14/comments/commentRss/207151.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ybyb14/services/trackbacks/207151.html</trackback:ping><description><![CDATA[<p><strong style="font-size: 14pt">一:日志消息级别</strong></p>
<p>日志消息从高到低的六个级别:FATAL,ERROR,WARN,INFO,DEBUG,TRACE</p>
<p>只有大于或等于日志器配置的日志级别时,这个方法才会执行!如日志级别为INFO,则FATAL,ERROR,WARN,INFO会被执行,而DEBUG,TRACE级别不会执行!</p>
<p><strong style="font-size: 14pt">二:指定日志器</strong></p>
<p>在本例中使用的是Log4j日志器,在项目的src目录下新建commons-logging.properties文件,用于指定日志器</p>
<p>commons-logging.properties文件中的内容为:</p>
<p>org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger</p>
<p><strong style="font-size: 14pt">三:配置Log4j</strong></p>
<p>在项目的src目录下新建log4j.properties文件,用于配置日志器</p>
<p>首先配置rootLogger组件</p>
<p>log4j.rootLogger=[priority],appenderName,appenderName</p>
<p>其中priority表示日志级别,可选值包括OFF,FATAL,EROR,WARN,INFO,DEBUG,TRACE,ALL</p>
<p>appenderName表示Appender组件,用户可以同时指定多个appender例如</p>
<p>log4j.rootLogger=INFO,console,file</p>
<p>配置appender组件</p>
<p>log4j提供的控制台有以下几种:</p>
<p>org.apache.log4j.ConsoleAppender(控制台)</p>
<p>org.apache.log4j.FileAppender(文件)</p>
<p>org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)</p>
<p>org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)</p>
<p>org.apache.log4j.WriterAppender(将日志消息以流格式发送到任意指定的地方)</p>
<p>例如:</p>
<p>log4j.appender.console=org.apache.log4j.ConsoleAppender</p>
<p>log4j.appender.file=org.apache.log4j.FileAppender</p>
<p>log4j.appender.file.File=myLog.txt //用于指定输出的文件名:存放在Tomcat的bin目录下</p>
<p>在上例中指定的是控制台输出和文本两个组件,console和file对应的是log4j.rootLogger=INFO,console,file中的console,file</p>
<p>配置Layout组件</p>
<p>定义日志的输出格式,log4j提供的Layout有以下几种:</p>
<p>org.apache.log4j.HTMLLayout(以Html表格形式布局)</p>
<p>org.apache.log4j.PatternLayout(可灵活指定布局模式)</p>
<p>org.apache.log4j.SimpleLayout(包含日志消息的级别和信息字符串) //常用</p>
<p>org.apache.log4j.TTCCLayout(包含日志产生的时间,线程和类别信息)</p>
<p>例如:</p>
<p>log4j.appender.console=org.apache.log4j.SimpleLayout</p>
<p>log4j.appender.file=org.apache.log4j.SimpleLayout</p>
<p><strong style="font-size: 14pt">四:在Struts中使用log4j</strong></p>
<p>1,通过import 引入loggin API</p>
<p>import org.apache.commons.logging.Log</p>
<p>import org.apache.commons.logging.LogFactory</p>
<p>2,使用LogFactory类的静态方法getLog(),获得一个Log类的实例</p>
<p>Log log= LogFactory.getLog("hello");</p>
<p>3,调用Log类的输出日志方法</p>
<p>log.trace("This is a trace message");<br />
log.debug("This is a debug message");<br />
log.info("This is an info message");</p>
<p>log.warn("This is a warn message");<br />
log.error("This is an error message");<br />
log.fatal("This is a fatal message");</p>
<p>4,使用Log标签库</p>
<p>apache提供了一个客户化的Log标签库,通过它可以在jsp文件中直接使用log4j,而无需编写代码</p>
<p>从apache网站上下载jakara-taglibs-log-current.zip文件,解压,把taglibs-log.tld文件复制到WEB-INF目录下,并把taglibs-log.jar文件复制到WEB-INF/lib目录下</p>
<p>在JSP文件中访问Log标签库</p>
<p>&lt;%@ taglib uri="/WEB-INF/taglibs-log.tld" prefix="log"%&gt;</p>
<p>&lt;log:debug message ="this is a debug message"&gt;</p>
<p>&lt;log:info message ="this is a debug message"&gt;</p>
<p>Log标签库中还有一个&lt;log:dump&gt;标签,它能输出特定范围内的所有对象的信息,</p>
<p>使用方法如下:</p>
<p>&lt;%<br />
&nbsp; request.setAttribute("stringInRequestScope","This is a string in request scope");<br />
&nbsp; session.setAttribute("stringInSessionScope","This is a string in session scope");<br />
%&gt;<br />
&nbsp; --------dump objects in page scope----------<br />
&nbsp; &lt;log:dump scope="page"/&gt;<br />
&nbsp;--------dump objects in request scope----------<br />
&nbsp; &lt;log:dump scope="request"/&gt;<br />
&nbsp;--------dump objects in session scope----------<br />
&nbsp; &lt;log:dump scope="session"/&gt;<br />
&nbsp;--------dump objects in application scope----------<br />
&nbsp; &lt;log:dump scope="application"/&gt;<br />
</p>
 <img src ="http://www.blogjava.net/ybyb14/aggbug/207151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ybyb14/" target="_blank">许明</a> 2008-06-11 17:00 <a href="http://www.blogjava.net/ybyb14/articles/207151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>