log4j配置日志
懂行的人都知道,log4j日志是個(gè)很基礎(chǔ)的東東,與struts這種高層框架無關(guān),只與web開發(fā)了的tomcat有關(guān)。這里之所以寫出struts,是因?yàn)楣P者一開始用struts的時(shí)候,以為是這樣,也是這樣google的。好了,言歸正傳,開工了
給tomcat配置log4j有好幾種方法,我知道的有:
一、tomcat級(jí)別的統(tǒng)一日志管理(沒有實(shí)際驗(yàn)證過,只是查了資料):
在tomcat的common/lib下增加log4j的.jar包,以便程序使用的時(shí)候,能夠加載到。
在自己的webapps的WEB-INF/classes下添加log4j.properties配置,所有的東西都是自動(dòng)的
這種方式的缺點(diǎn)很明顯,一個(gè)tomcat可能會(huì)多個(gè)子webapps,都統(tǒng)一到一個(gè)日志下,非常不便于管理。所以重點(diǎn)看下面
二、每個(gè)webapp分別配置log4j(切實(shí)可行的實(shí)踐經(jīng)驗(yàn))
1、在自己youapp的WEB-INF/lib下增加log4j-xxx.jar文件
2、自己寫一個(gè)servlet,初始化log4j的相關(guān)配置信息:
Java代碼
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import org.apache.log4j.PropertyConfigurator;
public class Log4jInitServlet extends HttpServlet {
public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {
}
public void init() throws ServletException {
System.setProperty("webappRoot", getServletContext().getRealPath("/"));
PropertyConfigurator.configure(getServletContext().getRealPath("/") + getInitParameter("configfile"));
}
}
3、修改web.xml文件,讓tomcat啟動(dòng)你app的時(shí)候自動(dòng)加載剛才這個(gè)servlet:
Xml代碼
<!-- initialize log4j -->
<servlet>
<servlet-name>log4j config file</servlet-name>
<servlet-class>com.keepc.util.Log4jInitServlet</servlet-class>
<init-param>
<param-name>configfile</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
4、在youapp/WEB-INF/classes先新建log4j.properties文件,內(nèi)容如下:
log4j.rootLogger=debug, A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.file=${webappRoot}/logs/youapp_log-
log4j.appender.A1.DatePattern=yyyy-MM-dd'.log'
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss, SSS}[%c]-[%p] %m%n
5、重新啟動(dòng)tomcat,即可在你的youapp應(yīng)用目錄下看到logs目錄和對(duì)應(yīng)的log文件
#:這里說道的webapp目錄是指:c:\program files\tomcat\webapps\youapp目錄
6、在你的app目錄下創(chuàng)建一個(gè)jsp做下測(cè)試:
Html代碼
<%@ page contentType="text/html; charset=GBK" language="java" import="org.apache.log4j.Logger,java.util.*"%>
<html>
<head>
<link href="style/reg.css" rel="stylesheet" type="text/css">
<title>測(cè)試頁面</title>
</head>
<body>
<%
Logger log = Logger.getLogger("test.jsp");
log.debug("測(cè)試日志,哈哈");
%>
</body>
</html>
在你的瀏覽器調(diào)用下這個(gè)jsp,就可以看到日志內(nèi)容了。
本方法在windows和linux下都通用,完全一樣。
只與log4j.properties的詳細(xì)配置方法,網(wǎng)上隨便google下都有一籮筐,照抄就是了。
給tomcat配置log4j有好幾種方法,我知道的有:
一、tomcat級(jí)別的統(tǒng)一日志管理(沒有實(shí)際驗(yàn)證過,只是查了資料):
在tomcat的common/lib下增加log4j的.jar包,以便程序使用的時(shí)候,能夠加載到。
在自己的webapps的WEB-INF/classes下添加log4j.properties配置,所有的東西都是自動(dòng)的
這種方式的缺點(diǎn)很明顯,一個(gè)tomcat可能會(huì)多個(gè)子webapps,都統(tǒng)一到一個(gè)日志下,非常不便于管理。所以重點(diǎn)看下面
二、每個(gè)webapp分別配置log4j(切實(shí)可行的實(shí)踐經(jīng)驗(yàn))
1、在自己youapp的WEB-INF/lib下增加log4j-xxx.jar文件
2、自己寫一個(gè)servlet,初始化log4j的相關(guān)配置信息:
Java代碼
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import org.apache.log4j.PropertyConfigurator;
public class Log4jInitServlet extends HttpServlet {
public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {
}
public void init() throws ServletException {
System.setProperty("webappRoot", getServletContext().getRealPath("/"));
PropertyConfigurator.configure(getServletContext().getRealPath("/") + getInitParameter("configfile"));
}
}
3、修改web.xml文件,讓tomcat啟動(dòng)你app的時(shí)候自動(dòng)加載剛才這個(gè)servlet:
Xml代碼
<!-- initialize log4j -->
<servlet>
<servlet-name>log4j config file</servlet-name>
<servlet-class>com.keepc.util.Log4jInitServlet</servlet-class>
<init-param>
<param-name>configfile</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
4、在youapp/WEB-INF/classes先新建log4j.properties文件,內(nèi)容如下:
log4j.rootLogger=debug, A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.file=${webappRoot}/logs/youapp_log-
log4j.appender.A1.DatePattern=yyyy-MM-dd'.log'
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss, SSS}[%c]-[%p] %m%n
5、重新啟動(dòng)tomcat,即可在你的youapp應(yīng)用目錄下看到logs目錄和對(duì)應(yīng)的log文件
#:這里說道的webapp目錄是指:c:\program files\tomcat\webapps\youapp目錄
6、在你的app目錄下創(chuàng)建一個(gè)jsp做下測(cè)試:
Html代碼
<%@ page contentType="text/html; charset=GBK" language="java" import="org.apache.log4j.Logger,java.util.*"%>
<html>
<head>
<link href="style/reg.css" rel="stylesheet" type="text/css">
<title>測(cè)試頁面</title>
</head>
<body>
<%
Logger log = Logger.getLogger("test.jsp");
log.debug("測(cè)試日志,哈哈");
%>
</body>
</html>
在你的瀏覽器調(diào)用下這個(gè)jsp,就可以看到日志內(nèi)容了。
本方法在windows和linux下都通用,完全一樣。
只與log4j.properties的詳細(xì)配置方法,網(wǎng)上隨便google下都有一籮筐,照抄就是了。
posted on 2012-12-25 00:52 奮斗成就男人 閱讀(1059) 評(píng)論(0) 編輯 收藏