一、添加log4j依赖包
官网下载地址:http://logging.apache.org/log4j/2.x/download.html
maven项目配置
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
二、编写log4j.properties 配置文件
log4j.rootLogger=DEBUG,A,CONSOLE
log4j.addivity.org.apache=false
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=Trace
log4j.appender.CONSOLE.layout.ConversionPattern=[boss_sys] %d{yyyy-MM-dd HH\:mm\:ss.SSS} -%-4r [%t] %-5p %x - %m%n
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=utf-8
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.A=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A.File=${catalina.home}/logs/boss_log/boss
log4j.appender.A.DatePattern=yyyy-MM-dd'.log'
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=[boss_sys] %d{yyyy-MM-dd HH\:mm\:ss} %5p %c{1}\:%L \: %m%n
三、Spring配置log4j
如果Spring是java项目,只要将log4j.properties 配置文件放到src目录下,如果是java maven项目log4j.properties配置文件放到src/main/java目录下。
但在web项目中,我们需要再web.xml中配置,web.xml配置log4j内容如下:
<!-- 加载log4j的配置文件log4j.properties -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<!-- 设定刷新log4j日志配置文件的时间间隔,这里设置为10s -->
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>10000</param-value>
</context-param>
<!-- 加载Spring框架中的log4j监听器Log4jConfigListener -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!--
为避免项目间冲突,定义唯一的 webAppRootKey。
webAppRootKey指定一个项目路径的系统变量, 相同tomcat中,不同项目该值不能一样
该值指向的是tomcat中项目路径,例如:D:\tomcat 7.0\webapps\web\
通过System.getProperty("webapp.root")可以获取
log4j.properties通过该值可以指定日志文件路径到项目下
例如:log4j.appender.file.File=${webapp.root}/WEB-INF/logs/sample.log
相当于:D:\tomcat 7.0\webapps\web\WEB-INF\logs\sample.log
Spring通过org.springframework.web.util.WebAppRootListener这个监听器来加载运行时的项目路径,将该路径赋值到该参数。
但是如果在web.xml中已经配置了 org.springframework.web.util.Log4jConfigListener这个监听器,
则不需要配置WebAppRootListener了。因为Log4jConfigListener已经包含了WebAppRootListener的功能
-->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>webapp.root</param-value>
</context-param>