一:日志消息级别
日志消息从高到低的六个级别:FATAL,ERROR,WARN,INFO,DEBUG,TRACE
只有大于或等于日志器配置的日志级别时,这个方法才会执行!如日志级别为INFO,则FATAL,ERROR,WARN,INFO会被执行,而DEBUG,TRACE级别不会执行!
二:指定日志器
在本例中使用的是Log4j日志器,在项目的src目录下新建commons-logging.properties文件,用于指定日志器
commons-logging.properties文件中的内容为:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
三:配置Log4j
在项目的src目录下新建log4j.properties文件,用于配置日志器
首先配置rootLogger组件
log4j.rootLogger=[priority],appenderName,appenderName
其中priority表示日志级别,可选值包括OFF,FATAL,EROR,WARN,INFO,DEBUG,TRACE,ALL
appenderName表示Appender组件,用户可以同时指定多个appender例如
log4j.rootLogger=INFO,console,file
配置appender组件
log4j提供的控制台有以下几种:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志消息以流格式发送到任意指定的地方)
例如:
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=myLog.txt //用于指定输出的文件名:存放在Tomcat的bin目录下
在上例中指定的是控制台输出和文本两个组件,console和file对应的是log4j.rootLogger=INFO,console,file中的console,file
配置Layout组件
定义日志的输出格式,log4j提供的Layout有以下几种:
org.apache.log4j.HTMLLayout(以Html表格形式布局)
org.apache.log4j.PatternLayout(可灵活指定布局模式)
org.apache.log4j.SimpleLayout(包含日志消息的级别和信息字符串) //常用
org.apache.log4j.TTCCLayout(包含日志产生的时间,线程和类别信息)
例如:
log4j.appender.console=org.apache.log4j.SimpleLayout
log4j.appender.file=org.apache.log4j.SimpleLayout
四:在Struts中使用log4j
1,通过import 引入loggin API
import org.apache.commons.logging.Log
import org.apache.commons.logging.LogFactory
2,使用LogFactory类的静态方法getLog(),获得一个Log类的实例
Log log= LogFactory.getLog("hello");
3,调用Log类的输出日志方法
log.trace("This is a trace message"); log.debug("This is a debug message"); log.info("This is an info message");
log.warn("This is a warn message"); log.error("This is an error message"); log.fatal("This is a fatal message");
4,使用Log标签库
apache提供了一个客户化的Log标签库,通过它可以在jsp文件中直接使用log4j,而无需编写代码
从apache网站上下载jakara-taglibs-log-current.zip文件,解压,把taglibs-log.tld文件复制到WEB-INF目录下,并把taglibs-log.jar文件复制到WEB-INF/lib目录下
在JSP文件中访问Log标签库
<%@ taglib uri="/WEB-INF/taglibs-log.tld" prefix="log"%>
<log:debug message ="this is a debug message">
<log:info message ="this is a debug message">
Log标签库中还有一个<log:dump>标签,它能输出特定范围内的所有对象的信息,
使用方法如下:
<% request.setAttribute("stringInRequestScope","This is a string in request scope"); session.setAttribute("stringInSessionScope","This is a string in session scope"); %> --------dump objects in page scope---------- <log:dump scope="page"/> --------dump objects in request scope---------- <log:dump scope="request"/> --------dump objects in session scope---------- <log:dump scope="session"/> --------dump objects in application scope---------- <log:dump scope="application"/>
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ybyb14/archive/2008/06/10/2533385.aspx