Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【Log日志】打印mybatis中sql日志并存放到指定文件中

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

作者头像
石臻臻的杂货铺[同名公众号]
发布于 2021-07-14 02:26:06
发布于 2021-07-14 02:26:06
2.1K00
代码可运行
举报
文章被收录于专栏:kafka专栏kafka专栏
运行总次数:0
代码可运行

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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
代码运行次数:0
运行
AI代码解释
复制
<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
代码运行次数:0
运行
AI代码解释
复制
# 这个配置会将执行的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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Springboot整合Logback日志收集和滚动
在Spring Boot项目中,整合Logback进行日志收集和滚动是一个非常常见的需求。Logback是一个高效的日志框架,Spring Boot默认使用Logback作为日志实现,因此整合过程非常简单。接下来详细的整合步骤和配置说明。
小明爱吃火锅
2025/03/27
710
Spring Boot入门系列(十三)统一日志处理!
前面介绍了Spring Boot 异常处理,今天主要讲解Spring Boot中的日志收集,日志是追踪错误定位问题的关键,特别在生产环境中,我们需要通过日志快速定位解决问题。
架构师精进
2020/06/17
2.4K0
springboot 指定logback.xml文件的位置(springboot接收参数)
第一次写博客,希望能记录自己更多的学习过程。 如有错误,欢迎指正。 附:参考链接如下: http://tengj.top/2017/04/05/springboot7/ https://www.cnblogs.com/linkstar/p/8309039.html https://www.cnblogs.com/lixuwu/p/5804793.html
全栈程序员站长
2022/07/26
2.4K0
Logback日志这样配置,让你性能提升10倍!
SpringBoot工程自带 logback和 slf4j的依赖,所以重点放在编写配置文件上,需要引入什么依赖,日志依赖冲突统统都不需要我们管了。logback框架会默认加载 classpath下命名为 logback-spring或 logback的配置文件。
用户1263954
2022/02/15
3.4K0
Logback日志这样配置,让你性能提升10倍!
轻量级日志平台
常用的日志管理平台如efk,elk等都太过臃肿,推荐一个轻量级的日志平台zincsearch
用户1599145
2024/03/25
2550
基于slf4j实现多线程日志
对于多线程的程序来说,排错是一件特别麻烦的事情,特别是针对日志,多线程有可能发生日志写阻塞,那我们有没有可能每一个线程一个日志文件呢?答案是可以的,基于slf4j的MDC,具体MDC原理各位看官自行百度
shengjk1
2018/10/24
2.3K0
配置文件logback-spring.xml
SpringBoot工程自带logback和slf4j的依赖,所以重点放在编写配置文件上,需要引入什么依赖,日志依赖冲突统统都不需要我们管了。
赵哥窟
2022/06/12
1.2K0
配置文件logback-spring.xml
SpringBoot入门系列(十一)统一日志收集!
今天主要讲解Spring Boot中的日志收集,日志是追踪错误定位问题的关键,特别在生产环境中,我们需要通过日志快速定位解决问题。
架构师精进
2020/05/18
1.1K0
基于ELK收集业务日志的初步体验
elasticsearch - 7.5.1 logstash - 7.5.1 kibana - 7.5.1 logback.properties # 应用名称 appName=data-center
用户1215919
2021/12/28
3280
基于ELK收集业务日志的初步体验
logback和log4j配置
logback.xml配置: <?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="stdout" clas
执笔记忆的空白
2020/12/25
5780
logback日志入门超级详细讲解
日志:就是能够准确无误地把系统在运行状态中所发生的情况描述出来(连接超时、用户操作、异常抛出等等); 日志框架:就是集成能够将日志信息统一规范后输出的工具包。
呆呆
2021/10/09
2.7K0
SpringBoot基础(三):Logback日志
适配器作用:以后想要换其他日志框架,只要排除掉logback日志实现,导入log4j2或jul的日志实现即可,代码中API还是slf4j不需要修改,只修改maven依赖就改变了日志的底层实现。
冬天vs不冷
2025/01/21
2350
SpringBoot基础(三):Logback日志
Logback使用问题汇总
SpringBoot中logback.xml使用application.yml中属性
编程随笔
2024/09/24
720
【详解】SpringBootLogBack日志配置与多环境实战
在现代软件开发中,日志记录是不可或缺的一部分。它不仅帮助我们了解应用程序的运行状态,还可以在出现问题时提供重要的调试信息。Spring Boot 提供了多种日志框架的支持,其中 Logback 是一个非常流行的选择,因为它简单、高效且功能强大。本文将介绍如何在 Spring Boot 项目中配置 Logback,并实现不同环境下的日志配置。
大盘鸡拌面
2025/01/14
6980
Springboot日志管理——logback
当我们启动springboot的时候,控制台的默认输出就是由logback完成的。
Tom2Code
2022/11/21
7440
Springboot日志管理——logback
拿来直接用!一步实现Java应用日志文件控制
下面分享一个Logback配置,主要特点是:定时或日志文件大小刷新日志文件,区分信息和错误两类日志,保留时长,最大文件大小等。
大风写全栈
2024/10/30
830
拿来直接用!一步实现Java应用日志文件控制
SpringBoot 使用Logback日志框架
项目中日志系统是必不可少的,目前比较流行的日志框架有log4j、logback等,可能大家还不知道,这两个框架的作者是同一个人,Logback旨在作为流行的log4j项目的后续版本,从而恢复log4j离开的位置。另外 slf4j(Simple Logging Facade for Java) 则是一个日志门面框架,提供了日志系统中常用的接口,logback 和 log4j 则对slf4j 进行了实现。我们本文将讲述如何在spring boot 中应用 logback+slf4j实现日志的记录。
鱼找水需要时间
2023/02/16
5970
线上事故-logback日志文件过大,导致请求超时
项目组内同学遇到一个比较棘手问题,领导让我帮忙看看,某个应用每天00:00~00:05就会出现大量的接口请求超时,导致其他应用调用该系统接口超时情况。并且接口有些几秒甚至几十秒情况发生。
逍遥壮士
2021/12/31
2.2K0
线上事故-logback日志文件过大,导致请求超时
logback 配置文件
本文由 小马哥 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为: 2022/05/04 19:38
IT小马哥
2022/05/05
9430
SpringBoot 的 logback 日志配置
1. 在 resources 目录下创建日志的配置文件 logback-spring.xml , 这是 SpringBoot 官方约定的名称
北漂的我
2020/07/03
7700
相关推荐
Springboot整合Logback日志收集和滚动
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文