Spring+Struts2+Mybatis+Log4j2配置
Spring+Struts2+Mybatis+Log4j2配置
Spring版本:4.0.2
Mybatis版本:3.4.4
Tomcat版本:8.0.53
1. 添加以下slf4j和log4j2的依赖
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.12.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.12.1</version>
</dependency>
<!-- 桥接slf4j和log4j2 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.12.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.28</version>
</dependency>
<!-- mybatis需要,否则会报错 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
2. log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<properties>
<property name="LOG_HOME">/usr/local/tomcatLogs</property>
<!-- <property name="LOG_HOME">/tomcatLogs</property>-->
<property name="PATTERN_LAYOUT">[%d{DEFAULT}{GMT+8}] [%p] - %l - %m%n</property>
</properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="${PATTERN_LAYOUT}"/>
</Console>
<!-- warn及以下日志 -->
<RollingFile name="RollingFileInfo" fileName="${LOG_HOME}/info.log"
filePattern="${LOG_HOME}/info-%d{yyyy-MM-dd}-%i.log">
<Filters>
<!-- 如果是error级别拒绝 -->
<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
<!-- 如果是info/warn输出 -->
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<PatternLayout pattern="${PATTERN_LAYOUT}"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
<DefaultRolloverStrategy max="15"/>
</RollingFile>
<!-- error及以上日志 -->
<RollingFile name="RollingFileError" fileName="${LOG_HOME}/error.log"
filePattern="${LOG_HOME}/error-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<PatternLayout pattern="${PATTERN_LAYOUT}"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
<DefaultRolloverStrategy max="15"/>
</RollingFile>
</Appenders>
<!--然后定义logger,只有定义了logger并引入了appender,appender才会生效-->
<Loggers>
<!--过滤掉一些无用的DEBUG信息-->
<logger name="org.springframework" level="INFO"></logger>
<logger name="org.mybatis" level="INFO"></logger>
<logger name="com.opensymphony.xwork2" level="INFO"></logger>
<logger name="org.apache.struts2" level="INFO"></logger>
<Root level="all">
<!-- 打包的时候注释掉Console输出 -->
<!-- <AppenderRef ref="Console"/>-->
<AppenderRef ref="RollingFileInfo"/>
<AppenderRef ref="RollingFileError"/>
</Root>
</Loggers>
</Configuration>
3. mybatis-config.xml
<!--打印sql日志-->
<settings>
<setting name="logImpl" value="LOG4J2"/>
</settings>