spring-mvc集成log4j2和slf4j

spring 版本
4.3.3.RELEASE
引入slf4j核心包和log4j2核心包


org.slf4j
slf4j-api
1.7.25


org.slf4j
jcl-over-slf4j
1.7.25
runtime




org.apache.logging.log4j
log4j-core
2.8.2



org.apache.logging.log4j
log4j-api
2.8.2



org.apache.logging.log4j
log4j-slf4j-impl
2.8.2



org.apache.logging.log4j
log4j-web
2.8.2
runtime




com.lmax
disruptor
3.3.6
web.xml中设置log4j2的监听器和过滤器(servlet3.0及以上版本不需要该步操作) 开发Servlet3.0的程序需要一定的环境支持。MyEclipse10和Tomcat7都提供了对java EE6规范的支持。Tomcat需要Tomcat7才支持Java EE6,Tomcat7需要使用JDK1.6以上的版本。


org.apache.logging.log4j.web.Log4jServletContextListener


log4jServletFilter
org.apache.logging.log4j.web.Log4jServletFilter


log4jServletFilter
/*
REQUEST
FORWARD
INCLUDE
ERROR

注意:log4j2不再支持properties文件了,只支持xml,json或是yaml,不指定位置的情况下默认在src/main/resources下查找。

如果需要自定义位置,需要在上面的web.xml中添加以下代码


contextConfigLocation
classpath:applicationContext.xml


log4jConfiguration
classpath:log4j2.xml
log4j2.xml
xml version="1.0" encoding="UTF-8"?>
status="off" monitorInterval="120">

name="LOG_HOME">E:\log2s


name="Console" target="SYSTEM_OUT">
pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>


name="rootAppeder"
fileName="${LOG_HOME}/rattanapi.log"
filePattern="${LOG_HOME}/$${date:yyyy-MM}/rattanapi-root-%d{yyyy-MM-dd}-%i.log">
pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %ex%msg%n"/>

interval="1"/>
size="100 MB"/>

max="30"/>



name="errorAppeder"
fileName="${LOG_HOME}/rattanapi-error.log"
filePattern="${LOG_HOME}/$${date:yyyy-MM}/rattanapi-error-%d{yyyy-MM-dd}-%i.log">

level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>

pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %ex%msg%n"/>

interval="1"/>
size="100 MB"/>

max="30"/>





level="info">

ref="Console"/>
ref="rootAppeder"/>
ref="errorAppeder"/>


测试代码

protected final org.slf4j.Logger log = LoggerFactory.getLogger(this.getClass());

public void testLog(){
log.info("testLog","test");
}

你可能感兴趣的:(spring)