前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Log日志】打印mybatis中sql日志并存放到指定文件中

【Log日志】打印mybatis中sql日志并存放到指定文件中

作者头像
石臻臻的杂货铺[同名公众号]
发布2021-07-14 10:26:06
1.9K0
发布2021-07-14 10:26:06
举报
文章被收录于专栏:kafka专栏

打印mybatis中sql日志并存放到指定文件中

logback-spring.xml (如果是logbackx.xml 动态路径会失效)

代码语言:javascript
复制
<configuration>

	
	<property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss} %c{1} %L [%p] %m%n %caller{0}"/>

	
	<springProperty scope="context" name="log.path" source="log.path"/>

	
	<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
		<encoder charset="UTF-8">
			
			<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{50} >>> %msg%npattern>
		encoder>
	appender>


	<appender name="common" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${log.path}/common.logfile>
		
		<append>trueappend>
		
		<encoder>
			<pattern>${pattern}pattern>
		encoder>
		
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>INFOlevel>
			<onMatch>ACCEPTonMatch>
			<onMismatch>DENYonMismatch>
		filter>
		
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${log.path}/common.log.%d{yyyy-MM-dd}fileNamePattern>
			
			<maxHistory>10maxHistory>
		rollingPolicy>
	appender>

	<appender name="exception" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${log.path}/exception.logfile>
		<append>trueappend>
		
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>ERRORlevel>
			<onMatch>ACCEPTonMatch>
			<onMismatch>DENYonMismatch>
		filter>
		<encoder>
			<pattern>${pattern}pattern>
		encoder>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${log.path}/exception.log.%d{yyyy-MM-dd}fileNamePattern>
			<maxHistory>7maxHistory>
		rollingPolicy>
	appender>


	<appender name="mysql_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${log.path}/mysql_log.logfile>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			
			<FileNamePattern>${log.path}/mysql_log.log.%d{yyyy-MM-dd}FileNamePattern>
			
			<MaxHistory>7MaxHistory>
		rollingPolicy>
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<pattern>${pattern}pattern>
		encoder>
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>DEBUGlevel>
		filter>
	appender>



	
	<logger name="com.xxx.mapper" level="DEBUG" additivity="false">
		<appender-ref ref="stdout"/>
		<appender-ref ref="mysql_log" />
	logger>


	


	
	<root level="INFO">
		<appender-ref ref="stdout"/>
		<appender-ref ref="common"/>
		<appender-ref ref="exception"/>
	root>
configuration>

几个关键点

  1. 文件名需要为logback-spring.xml; 动态日志路径才会生效; 属性文件中配置 log.path=xxx; 【Log日志】logback.xml动态配置属性值(包括接入的第三方配置)
  2. levle 需要是DEBUG等级; 因为sql日志是DEBUG等级的;name= 存放mapper文件的包路径
代码语言:javascript
复制
<logger name="com.xxx.mapper" level="DEBUG" additivity="false">
		<appender-ref ref="stdout"/>
		<appender-ref ref="mysql_log" />
	logger>
  1. mybatis的log-impl需要配置正确的实现类 比如 在maybatis-plus中
代码语言:javascript
复制
# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
mybatis-plus:
	configuration:
	    #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
	    # 这个配置会将执行的sql打印出来,这个可以存放在文件中 StdOutImpl的是只能打印到控制台
	    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl

我之前就是一直配置的是 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ;导致文件只能出现在控制台;却没有打印到文件中;

  1. 参数值的默认值设置 如果配置文件没有设置属性. 可以在使用的地方设置默认值 例如 ${log.path:-默认值}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/10/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 打印mybatis中sql日志并存放到指定文件中
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档