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>