1. 程式人生 > 實用技巧 >springboot + log4j2 列印 sql 日誌到日誌檔案

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