看了別人寫了那么多的教程,自己也受益不少,現(xiàn)在也把自己學(xué)Log4J的體會(huì)寫下來.
1.在WEB-INF\classes文件下放入一個(gè)java屬性文件,名字為commons-logging.properties,這是一個(gè)通用日志文件的配置文件,當(dāng)然你也可以用xml文件來弄.其內(nèi)容如下:
#--------------------------------------------------------
#使用Log4J實(shí)現(xiàn)
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog
## 使用SimpleLog實(shí)現(xiàn)
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
后面的值是你想要的實(shí)現(xiàn)日志接口的類.apache的commons-logging.jar本身帶了兩個(gè)實(shí)現(xiàn),SimpleLog
是其中的一個(gè),如果 你的要使用Log4J,還必須把Log4J大相關(guān)jar放到相應(yīng)的lib下.
2.如果使用SimpleLog,那么在WEB-INF\classes下要有一個(gè)simplelog.properties文件,內(nèi)容:
//---------------------------------------------
org.apache.commons.logging.simplelog.defaultlog = info
主要是定義SimpleLog日志輸出級(jí)別.
3.使用Log4J進(jìn)行日志輸出不僅可以定義輸出的級(jí)別,還可以定義輸出的地方和輸出的格式.而simplelog只有System.err.???????? Log4J主要是定義三個(gè)Logger,appender 和layout,appender 是輸出的地方,layout就是布局,也就是輸出的格式.
//-----------------------------------------------
## LOGGERS ##
#定義一個(gè)logger
log4j.rootLogger=INFO,console,file
## APPENDERS ##
#定義一個(gè)appender,后面的紅色字體就是他的名字,可以任意定義.其值是相關(guān)的輸出的類.可取值如
#ConsoleAppender
#RollingFileAppender
#DailyRollingFileAppender
..............................................
# log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log.txt
#如果使用FileAppender那么后面還跟很有多屬性如MaxFileSize,MaxBackupIndex等.
## LAYOUTS ##
# 定義格式
#格式主要有好幾中常用的就是SimpleLayout,HTMLLayout,PatternLayout,使用PatternLayout時(shí)后面還要有一個(gè)定義格式的ConversionPattern.
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
# PatternLayout
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%t %p - %m%n
#以下是使用的方法:
1.在action,servlet中
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
???????? Log log=LogFactory.getLog("helloapplog");
???????? 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");
2.在jsp中.
?<%@ page import="org.apache.commons.logging.Log" %>
<%@ page import="org.apache.commons.logging.LogFactory" %>
<% Log logger = LogFactory.getLog( this.getClass(? ) ); %>
? <% logger.warn( "This is a warn message from a jsp" ); %>
? <% logger.error( "This is an error message from a jsp" ); %>