添加log4j日志
web.xml
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
/WEB-INF/log4j.xml
//配置输入日志到终端
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="encoding" value="GBK" />
<param name="target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d Cost:%r Class:%-40.40c{3} Type: %-5p Content:%m %n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="levelMin" value="debug" />
<param name="levelMax" value="warn" />
<param name="AcceptOnMatch" value="true" />
</filter>
</appender>
//配置输入日志到文件
//公共类型
<appender name="DEFAULT-APPENDER" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${webapp.root}/logs/common-default.log" />
<param name="Append" value="true" />
<param name="encoding" value="GBK" />
<param name="threshold" value="all" />
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d Cost:%r Class:%-40.40c{3} Type: %-5p Content:%m %n" />
</layout>
</appender>
//Debug类型
<appender name="DEBUG-APPENDER" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${webapp.root}/logs/controller/debug-log.log" />
<param name="Append" value="true" />
<param name="encoding" value="GBK" />
<param name="threshold" value="debug" />
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d Cost:%r Class:%-40.40c{3} Type: %-5p Content:%m %n" />
</layout>
</appender>
//创建logger
<!-- controllers指定的是包名,这样只操作此包下的log -->
<logger name="controllers" additivity="true">
<level value="DEBUG"></level>
<appender-ref ref="DEBUG-APPENDER" />
</logger>
<!-- 所有logger的父类,记录所有的日志。 -->
<root>
<level value="ALL"></level>
<appender-ref ref="DEFAULT-APPENDER" />
<appender-ref ref="console"/>
</root>
controllers包下创建logger
//直接使用log4j创建logger
import org.apache.log4j.Logger;
public class DisplayController {
private static Logger logger =Logger.getLogger(DisplayController.class);
public void test()
{
logger.debug("debug");
logger.warn("warn");
logger.error("error");
}
//使用slf4j创建logger,目的是为了兼容,当更改log4j为其他类型的log类时,不用更改类中涉及logger的部分。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class DisplayController {
private static Logger logger =LoggerFactory.getLogger(DisplayController.class);
public void test()
{
logger.debug("debug");
logger.warn("warn");
logger.error("error");
}
为了使slf4j支持log4j需要添加slf4j-log4j12-xxx.jar
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.6</version>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.6</version>
</dependency>
参考:
1 为什么要使用SLF4J而不是Log4J http://www.importnew.com/7450.html
2 springmvc+log4j操作日志记录,详细配置 http://www.cnblogs.com/v-weiwang/p/4814050.html