看了別人寫了那么多的教程,自己也受益不少,現在也把自己學Log4J的體會寫下來.
1.在WEB-INF\classes文件下放入一個java屬性文件,名字為commons-logging.properties,這是一個通用日志文件的配置文件,當然你也可以用xml文件來弄.其內容如下:
#--------------------------------------------------------
#使用Log4J實現
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog
## 使用SimpleLog實現
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
后面的值是你想要的實現日志接口的類.apache的commons-logging.jar本身帶了兩個實現,SimpleLog
是其中的一個,如果 你的要使用Log4J,還必須把Log4J大相關jar放到相應的lib下.
2.如果使用SimpleLog,那么在WEB-INF\classes下要有一個simplelog.properties文件,內容:
//---------------------------------------------
org.apache.commons.logging.simplelog.defaultlog = info
主要是定義SimpleLog日志輸出級別.
3.使用Log4J進行日志輸出不僅可以定義輸出的級別,還可以定義輸出的地方和輸出的格式.而simplelog只有System.err.???????? Log4J主要是定義三個Logger,appender 和layout,appender 是輸出的地方,layout就是布局,也就是輸出的格式.
//-----------------------------------------------
## LOGGERS ##
#定義一個logger
log4j.rootLogger=INFO,console,file
## APPENDERS ##
#定義一個appender,后面的紅色字體就是他的名字,可以任意定義.其值是相關的輸出的類.可取值如
#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時后面還要有一個定義格式的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" ); %>