springboot + log4j2 打印 sql 日志到日志文件

框架:springboot + log4j2 日志框架;

在yml文件指定mapper接口包名:

不用在yml 文件下添加:mybatis.configuration = org.apache.ibatis.logging.stdout.StdOutImpl

该标签亲测作用只是在控制台输入sql日志,如果想将sql打印到日志文件中,有了它的存在,只能在控制台打印sql,日志文件是不会打印的;

如图所示:

 log4j2.xml  文件 appenders 标签下为

 添加到 loggers 下:

 完整的 log4j2.xml 内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <properties>
        <Property name="app_name">d:gxs-log</Property>
        <Property name="log_path">${app_name}</Property>
    </properties>
    <appenders>
        <console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="[%d][%t][%p][%l] %m%n" />
            <!--<ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>-->
        </console>

        <RollingFile name="RollingFileDebug" fileName="${log_path}/debug.log"
                     filePattern="${log_path}/$${date:yyyy-MM}/debug-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
                <ThresholdFilter level="DEBUG" />
                <ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL" />
            </Filters>
            <PatternLayout pattern="[%d][%t][%p][%c:%L] %m%n" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" /> <!-- 归档每天的文件 -->
                <SizeBasedTriggeringPolicy size="2 MB" /> <!-- 限制单个文件大小 -->
            </Policies>
            <DefaultRolloverStrategy compressionLevel="0" max="10"/>  <!-- 限制每天文件个数 -->
        </RollingFile>

        <RollingFile name="RollingFileInfo" fileName="${log_path}/info.log"
                     filePattern="${log_path}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
                <ThresholdFilter level="INFO" />
                <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL" />
            </Filters>
            <PatternLayout pattern="[%d][%t][%p][%c:%L] %m%n" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" /> <!-- 归档每天的文件 -->
                <SizeBasedTriggeringPolicy size="2 MB" /> <!-- 限制单个文件大小 -->
            </Policies>
            <DefaultRolloverStrategy compressionLevel="0" max="10"/>  <!-- 限制每天文件个数 -->
        </RollingFile>

        <RollingFile name="RollingFileWarn" fileName="${log_path}/warn.log"
                     filePattern="${log_path}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
                <ThresholdFilter level="WARN" />
                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL" />
            </Filters>
            <PatternLayout pattern="[%d][%t][%p][%c:%L] %m%n" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
                <SizeBasedTriggeringPolicy size="2 MB" />
            </Policies>
            <DefaultRolloverStrategy compressionLevel="0" max="10"/>
        </RollingFile>

        <RollingFile name="RollingFileError" fileName="${log_path}/error.log"
                     filePattern="${log_path}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz">
            <ThresholdFilter level="ERROR" />
            <PatternLayout pattern="[%d][%t][%p][%c:%L] %m%n" />
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
                <SizeBasedTriggeringPolicy size="2 MB" />
            </Policies>
            <DefaultRolloverStrategy compressionLevel="0" max="10"/>
        </RollingFile>
    </appenders>

    <loggers>

        <!--过滤掉spring和mybatis的一些无用的DEBUG信息-->
        <!--<logger name="org.mybatis" level="debug" additivity="true">
            <AppenderRef ref="Console"/>
        </logger>-->
        <!--监控系统信息-->
        <!--若是additivity设为false,则 子Logger 只会在自己的appender里输出,而不会在 父Logger 的appender里输出。-->
        <!--<Logger name="org.springframework" level="debug" additivity="true">
            <AppenderRef ref="Console"/>
        </Logger>-->

        <root level="info">
            <appender-ref ref="Console" />
            <appender-ref ref="RollingFileDebug" />
            <appender-ref ref="RollingFileInfo" />
            <appender-ref ref="RollingFileWarn" />
            <appender-ref ref="RollingFileError" />
        </root>
    </loggers>

</configuration>
View Code
原文地址:https://www.cnblogs.com/gxs-future/p/14042947.html