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>

4. 参考文章

聊一聊log4j2配置文件log4j2.xml
Log4j2日志分级(error单独输出)
官方文档

posted @ 2019-11-05 15:05  双簧。  阅读(702)  评论(0编辑  收藏  举报