懂行的人都知道,log4j日志是个很基础的东东,与struts这种高层框架无关,只与web开发了的tomcat有关。这里之因此写出struts,是由于笔者一开始用struts的时候,觉得是这样,也是这样google的。好了,言归正传,开工了javascript
给tomcat配置log4j有好几种方法,我知道的有:css
1、tomcat级别的统一日志管理(没有实际验证过,只是查了资料):
在tomcat的common/lib下增长log4j的.jar包,以便程序使用的时候,可以加载到。html
在本身的webapps的WEB-INF/classes下添加log4j.properties配置,全部的东西都是自动的java
这种方式的缺点很明显,一个tomcat可能会多个子webapps,都统一到一个日志下,很是不便于管理。因此重点看下面linux
2、每一个webapp分别配置log4j(切实可行的实践经验)
一、在本身youapp的WEB-INF/lib下增长log4j-xxx.jar文件web
二、本身写一个servlet,初始化log4j的相关配置信息:apache
- 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"));
- }
- }
三、修改web.xml文件,让tomcat启动你app的时候自动加载刚才这个servlet:windows
-
- <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>
四、在youapp/WEB-INF/classes先新建log4j.properties文件,内容以下:浏览器
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%ntomcat
五、从新启动tomcat,便可在你的youapp应用目录下看到logs目录和对应的log文件
#:这里说道的webapp目录是指:c:\program files\tomcat\webapps\youapp目录
六、在你的app目录下建立一个jsp作下测试:
- <%@ 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>测试页面</title>
- </head>
- <body>
-
- <%
- Logger log = Logger.getLogger("test.jsp");
- log.debug("测试日志,哈哈");
- %>
-
- </body>
-
- </html>
在你的浏览器调用下这个jsp,就能够看到日志内容了。
本方法在windows和linux下都通用,彻底同样。
只与log4j.properties的详细配置方法,网上随便google下都有一箩筐,照抄就是了。