SpringBoot项目中使用Mybatis打印SQL日志-排查SQL方法

SpringBoot项目中使用Mybatis打印SQL日志-排查SQL方法

#正解配置如下:

mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
logging:
  level:
    com.springboot.mapper: DEBUG
## com.springboot.mapper是项目中mapper的目录路径。	

如果配置如下:

#mybatis:
#  configuration:
#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
日志不会输出。

 

补充:通过logback来打印sql日志
logback.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">

	<property name="LOG_HOME" value="/dd/log/myProject" />
	<property name="FILE_LOG_NAME" value="myProject" />
	<!-- root日志级别-->
	<property name="LOG_LEVEL" value="INFO"/>

	<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%X{X-B3-TraceId:-},%X{X-B3-SpanId:-}] %class{36}#%M [line:%L] - %msg%xEx%n</pattern>
		</encoder>
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>${LOG_LEVEL}</level>
		</filter>
	</appender>

	<!-- 输出到文件打印,level需要去掉或者只能设置为 DEBUG -->
	<appender name="fileLog"  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<File>${LOG_HOME}/${FILE_LOG_NAME}.log</File>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<FileNamePattern>${LOG_HOME}/${FILE_LOG_NAME}-%d{yyyy-MM-dd}-%i.log</FileNamePattern>
			<MaxHistory>100</MaxHistory>
			<TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<MaxFileSize>200MB</MaxFileSize>
			</TimeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%X{X-B3-TraceId:-},%X{X-B3-SpanId:-}] %class{36}#%M [line:%L] - %msg%xEx%n</pattern>
		</encoder>
		<!--<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>${LOG_LEVEL}</level>
		</filter>-->
	</appender>

	<!-- 输出到控制台打印 -->
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
		</encoder>
	</appender>


	<!-- com.yourpackage.mapper  mapper的目录,必须设置为DEBUG级别,否则mysql日志无法输出。
	将使用mybatis的类的level配置为debug,因为mybatis内部仅打印debug级别的SQL日志。
	-->
	<logger name="com.yourpackage.mapper" level="DEBUG" additivity="false">
		<appender-ref ref="STDOUT" />
		<appender-ref ref="fileLog" />
	</logger>


	<root level="INFO">
		<appender-ref ref="consoleLog" />
		<appender-ref ref="fileLog" />
		<appender-ref ref="consoleLog" />
		<appender-ref ref="STDOUT" />
	</root>

</configuration>

 

posted on 2024-12-09 18:49  oktokeep  阅读(629)  评论(0)    收藏  举报