一、自己写一个servlet,初始化log4j的相关配置信息
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("log4jConfigLocation"));
}
}
修改web.xml文件,让tomcat启动你app的时候自动加载刚才这个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>
二、通过Spring方式加载
<!--由Sprng载入的Log4j配置文件位置 --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.properties</param-value> </context-param> <!-- 每隔60秒检测一下Lo4j配置文件 --> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>60000</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
log4j.properties:
log4j.rootLogger=INFO, stdout, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # log4j.appender.stdout.layout.ConversionPattern=%p [%t] %C.%M(%L) | %m%n log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%-5p] (%C{2},%L) - %m%n log4j.appender.R=org.apache.log4j.DailyRollingFileAppender log4j.appender.R.File=${catalina.home}/logs/ATS.logs log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n # Druid log4j.logger.druid.sql=INFO,stdout,R log4j.logger.druid.sql.DataSource=INFO,stdout,R log4j.logger.druid.sql.Connection=INFO,stdout,R log4j.logger.druid.sql.Statement=INFO,stdout,R log4j.logger.druid.sql.ResultSet=INFO,stdout,R log4j.logger.com.opensymphony.xwork2=WARN #log4j.logger.org.apache.struts2=DEBUG log4j.logger.org.apache.struts2.convention=DEBUG log4j.logger.org.springframework=INFO log4j.logger.com.ibatis.db=INFO log4j.logger.com.ibatis=INFO log4j.logger.java.sql.Connection=INFO log4j.logger.java.sql.Statement=INFO log4j.logger.java.sql.PreparedStatement=INFO log4j.logger.java.sql.ResultSet=INFO