springboot配置日志文件控制台不打印sql语句

在Spring Boot中打印SQL语句的方法 在Spring Boot项目中,调试和优化数据库操作是很常见的需求。通过打印SQL语句可以帮助开发人员快速了解数据库的操作情况,进而进行性能分析和调试。本文将介绍在Spring Boot中打印SQL语句的几种方法,帮助你更好地理解和优化数据库操作。通过本文,你了解了在Spring Boot项目中打印SQL语句的几种方法。你可以根据实际需求选择合适的方法来查看和优化数据库操作。希望本文对你有所帮助。如果你有任何问题或疑问,欢迎留言讨论。需要系统源码或者BiShe加V。 阅读详情
AI摘要

本文介绍如何在Spring Boot中配置Log4j2替代默认的Logback,实现日志文件输出和控制台SQL打印,包括引入依赖、配置文件详解。

搜了很多没有还是没有实现我想要的效果,认真看了配置灵机一动就按照自己想的配置好了

想要的效果是想把日志文件输出在本地好追溯项目问的根源,控制台打印sql,看效果

图一:这是输出到本地的日志文件

图二:控制台打印sql

开始配置:

第一步:引入log4j2包 把springboot的默认Logback去掉,

Logback是log4j框架的作者开发的新一代日志框架,它效率更高、能够适应诸多的运行环境,同时天然支持SLF4J。

默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了。

<dependency> <!-- 引入log4j2依赖 -->
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions><!-- 去掉默认配置 -->
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

第二步:创建log4j2.xml 日志配置文件

目录:

log4j2文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<configuration monitorInterval="5">
    <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->

    <!--变量配置-->
    <Properties>
        <!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
        <!-- %logger{36} 表示 Logger 名字最长36个字符 -->
        <property name="LOG_PATTERN" value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>
        <!-- 定义日志存储的路径 -->
        <property name="FILE_PATH" value="F:/log/"/>
    </Properties>

    <appenders>

        <console name="Console" target="SYSTEM_OUT">
            <!--输出日志的格式-->
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <!--控制台只输出level及其以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
        </console>

        <!--打印sql语句-->
        <Console name="consoleSql" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n" />
        </Console>

        <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,适合临时测试用-->
        <File name="FileLog" fileName="${FILE_PATH}/test.log" append="false">
            <PatternLayout pattern="${LOG_PATTERN}"/>
        </File>

        <!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
        <RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/info.log"
                     filePattern="${FILE_PATH}/${FILE_NAME}-INFO-%d{yyyy-MM-dd}_%i.log.gz">
            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="10MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!-- 这个会打印出所有的warn及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
        <RollingFile name="RollingFileWarn" fileName="${FILE_PATH}/warn.log"
                     filePattern="${FILE_PATH}/${FILE_NAME}-WARN-%d{yyyy-MM-dd}_%i.log.gz">
            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="10MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!-- 这个会打印出所有的error及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
        <RollingFile name="RollingFileError" fileName="${FILE_PATH}/error.log"
                     filePattern="${FILE_PATH}/${FILE_NAME}-ERROR-%d{yyyy-MM-dd}_%i.log.gz">
            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="10MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

    </appenders>

    <!--Logger节点用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。-->
    <!--然后定义loggers,只有定义了logger并引入的appender,appender才会生效-->
    <loggers>

        <logger name="org.apache.ibatis" level="DEBUG" />
        <!--过滤掉spring和mybatis的一些无用的DEBUG信息-->
        <logger name="org.mybatis" level="DEBUG" additivity="false">
            <AppenderRef ref="Console"/>
        </logger>

        <!--监控系统信息-->
        <!--若是additivity设为false,则 子Logger 只会在自己的appender里输出,而不会在 父Logger 的appender里输出。-->
        <Logger name="org.springframework" level="DEBUG" additivity="false">
            <AppenderRef ref="Console"/>
        </Logger>

        <!-- 将业务dao接口填写进去,并用控制台输出即可 -->
        <logger name="com.xinshengdai.linqing.dao" level="DEBUG" additivity="false">
            <appender-ref ref="consoleSql"/>
        </logger>

        <root level="info">
            <appender-ref ref="consoleSql"/>
            <appender-ref ref="Console"/>
            <appender-ref ref="FileLog"/>
            <appender-ref ref="RollingFileDiy"/>
            <appender-ref ref="RollingFileInfo"/>
            <appender-ref ref="RollingFileWarn"/>
            <appender-ref ref="RollingFileError"/>
        </root>

    </loggers>
</configuration>

注意的地方:

可以改成你自己的输出日志文件路径,也可是相对路径

这里改成你的dao层也就是数据库访问层

其他一概不用改,上两步做完之后在application.yml 里引入就可以了

 

 

 

SpringBoot开发——如何把sql语句记录到日志文件 阅读详情

相关推荐

MMORPG网络游戏开发之任务系统的架构与设计

在网路游戏中做任务已经成为游戏很重要的一个核心功能和玩法,如何做好一个灵活可扩展的任务系统的架构与设计,今天来给大家分享一些我们的设计经验。接下来我把整个的任务系统分成以下6个模块:对于单机游戏而言,这6个模块都放在客户端直接处理,对于网路游戏而言,模块1~5实现在服务端,模块6实现在客户端。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习unity的零基础小白,也有一些正在从事unity开发的技术大佬,欢迎你来交流学习。...

voidinit的专栏 3049

【SQL打印】mybatis日志框架logback不打印SQL执行日志

期在项目中调试sql,发现现有的配置 使用logback 无法打印出sql语句,原配置如下(修改为debug也不好使): <!--jdbc --> <logger name="java.sql.Connection" level="ERROR" /> <logger name="java.sql.PreparedStatement" level="ERROR" /> <logger name="org.apache.zookeeper" level="ERROR

pocher的博客 1万+

Windows下用Anaconda安装d2l库避坑指南(附PermissionError解决方案)

本文详细介绍了在Windows系统下使用Anaconda安装d2l库的完整指南,特别针对常见的PermissionError问题提供了多种解决方案。从环境准备到库安装,再到VSCode配置和数据路径处理,帮助读者顺利搭建深度学习环境并运行《动手学深度学习》的代码示例。

3a9bq4r8t2y的博客 224

SpringBoot+Mybatis+Logback不在控制台打印SQL问题

本项目用到的是SpringBoot+Mybatis+Logback. 为了能够在控制台打印SQL,在配置文件中进行了各种配置,网上能查到的方法都试了,但是还是不打印SQL语句。 在配置文件中标明了logging.level.cn.homecredit.sams.ddme.reconciliation.model.mapper=debug.依然不打印SQL语句。 另外的一个SpringBoot...

写代码的蜗牛 7406

UE5游戏逆向实战:用FModel提取.pak文件中的3D模型(附Dumper-7避坑指南)

本文详细介绍了如何使用FModel工具从UE5游戏的.pak文件中提取3D模型,并提供了Dumper-7的避坑指南。内容涵盖FModel工具链配置、UE5特有的unversioned properties问题解决方案、Dumper-7实战流程以及模型后处理技巧,帮助开发者高效获取游戏资产。

weixin_30872499的博客 422

数字图像处理基础实验(二):直方图均衡化

一、实验内容及原理 1、计算灰度图像的归一化直方图 具体内容:利用 OpenCV 对图像像素进行操作,计算归一化直方图.并在 窗口中以图形的方式显示出来 步骤: (1)初始化一个256大小的数组,存放图像中每级灰度值的像素点的个数 (2)遍历整张图像 (3)归一化数组 2、灰度图像直方图均衡处理 具体内容:通过计算归一化直方图,设计算法实现直方图均衡化处理。 步骤: (1)读取该像素点的灰度值 (...

lyd1995的博客 4525

解决SpringBoot整合MyBatis和MyBatis-Plus,请求后不打印sql日志

解决SpringBoot整合MyBatis和MyBatis-Plus,请求后不打印sql日志

码农的艺术 5528

UE5 Mass交通规则设计指南:从Stop Sign到智能红绿灯的进阶配置

本文详细解析了UE5 Mass框架下的交通规则设计,从基础Stop Sign到智能红绿灯的进阶配置。通过UMassTrafficIntersectionSpawnDataGenerator等核心组件,实现动态响应、自然流畅的交通行为系统,提升虚拟城市的真实感与游戏性。

weixin_30500105的博客 502

springboot默认日志log,控制台不打印mybatis sql执行日志解决办法

增加配置 logging.level.com.XXX.mapper = debug

oliver486的博客 3087

HRNet训练自己的分类数据

1.搭建环境 为了防止和服务器上的环境冲突,这里利用conda搭建环境。 Install PyTorch=0.4.1 following theofficial instructions git clonehttps://github.com/HRNet/HRNet-Image-Classification Install dependencies: pip install -r requirements.txt ...

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 5847

Uniapp返回上一页并刷新:亲测有效的 goBack 实现技巧!

这个技巧在实际开发中非常常用,特别适合表单提交后返回列表刷新这类场景。比起依赖onShow或复杂的vuex状态同步,这种方式更直接、好维护,也不容易出 bug。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1841

SpringBoot2.X日志不打印Sql问题

改造项目过程中发现原来经常调试使用的插件MybatisLogPlugin失去了打印SQL的能力,日志框架是Lombok的@Slf4j 解决方式如下: Mybatis-Plus框架: mybatis框架: 运用之道,存乎一心。...

Good Luck 9万+

项目报告:基于Sentaurus TCAD的多沟道长度NMOS器件仿真、SPICE模型提取与环形振荡器电路验证

本项目基于Sentaurus TCAD工具,完成了从器件仿真到电路验证的全流程研究。首先构建了45nm、65nm和90nm三种沟道长度的NMOS器件,通过TCAD仿真分析了其电学特性,观察到明显的短沟道效应。随后提取了BSIM4 SPICE模型参数,并生成Hspice可用的模型文件。最后利用该模型设计了11级环形振荡器进行电路验证,证明了模型的实用性。研究结果表明,随着沟道长度缩短,器件性能虽有所提升,但短沟道效应导致关态电流显著增加,影响整体能效。本项目为纳米尺度MOSFET的建模与电路设计提供了完整的技

huanghm88的专栏 284

mybatis-plus无法通过logback-spring输出日志

mybatis-plus可以在控制台打印,却无法通过logback输出 问题描述 通过官网配置,将mybatis-plus引入spring boot项目中,但是日志只能在控制台中输出,却无法在logback的日志文件中输出 // 具体参考网址 // https://mp.baomidou.com/guide/faq.html#%E5%90%AF%E5%8A%A8-mybatis-%E6%9C%AC%E8%BA%AB%E7%9A%84-log-%E6%97%A5%E5%BF%97 mybatis-plus:

u011796200的博客 2798

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SpringBoot控制台打印SQL语句

在控制台上打印sql语句 mybatis: # spring boot集成mybatis的方式打印sql configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 在log日志中打印 logging: level: com.eth.wallet.mapper: debu...

刘骐毓的博客 5万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SpringBoot打印系统执行的sql语句以及日志的配置

SpringBoot打印系统执行的sql语句以及日志的配置的方式。

Congee_porridge的博客 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

springboot 下mybatis-plus 如何打印sql日志和参数到日志文件

最近在使用springboot过程中用到了mybatis-plus ,需要打印sql日志和参数,网上的清一色做法是加配置。 mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 加上去后日志确实是出来,可以看到idea控制台上将sql和参数打印出来了 SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@15b67

qq_36407469的博客 2万+

配置MyBatis-Plus打印执行的 SQL 语句到控制台或日志文件中

不同的日志等级表示不同程度的重要性或严重性,这有助于开发者根据需要过滤和查看日志信息。这些信息在诊断问题时可能很有用,但它们可能会产生大量的日志数据,因此一般只在开发或调试环境中使用。它提供的信息量适中,既不会太多也不会太少,适合于生产环境中的常规日志记录。请注意,在生产环境中应当谨慎配置日志级别,避免因为过多的日志记录而影响性能。致命级别,代表了极其严重的错误,通常是不可恢复的情况,可能导致整个应用程序崩溃或必须立即停止操作。当你设置一个日志等级时,实际上你也在选择是否要显示更高(更严格)级别的日志。

m0_74824845的博客 1813

SpringBoot集成MyBatis配置,控制台打印sql语句

前端发送接口请求时,常常因为sql语句报错,导致数据返回出错,能够定位sql语句错误信息,显得尤为重要了 1 首先引入log4j2依赖 <!-- 引入log4j2依赖 --> <dependency> <groupId>org.springframework.boot</groupId> ...

bugSeeking的博客 2503

Springboot JPA日志输出打印SQL语句和传入的参数 高阶篇

谈到面试,其实说白了就是刷题刷题刷题,天天作死的刷。。。。。为了准备这个“金三银四”的春招,狂刷一个月的题,狂补超多的漏洞知识,像这次美团面试问的算法、数据库、Redis、设计模式等这些题目都是我刷到过的并且我也将自己刷的题全部整理成了PDF或者Word文档(含详细答案解析)66个Java面试知识点架构专题(MySQL,Java,Redis,线程,并发,设计模式,Nginx,Linux,框架,微服务等)+大厂面试题详解(百度,阿里,腾讯,华为,迅雷,网易,中兴,北京中软等)算法刷题(PDF)

2401_83916355的博客 1403

Springboot2.2.4+slf4j+logback无法在日志文件中打印mybatis的sql语句,但是控制台可以打印

环境:   springboot 2.2.4.RELEASE   mybatis 1.1.1   slfj   logback 目录结构:** 先贴上logback.xml文件,这个文件没有问题: <?xml version="1.0" encoding="UTF-8"?> <configuration> <property name="log_path" ...

weixin_37541260的博客 1978

springboot myabits 配置日志 打印sql语句

1、在mybatis.xml配置中增加以下配置 <!--指定 MyBatis 增加到日志名称的前缀。--> <setting name="logPrefix" value="m-shop-mybatis-sql." /> <!--指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING--...

549

9、springcloud整合logback打印sql语句

公众号: java乐园 Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core、logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其...

天行健,君子以自强不息;地势坤,君子以厚德载物。 1561

SpringBoot 如何保存日志,控制台打印sql,完整教程展示

本期介绍的是SpringBoot项目如何配置日志完整教程1.pom.xml引入日志依赖2.在resources目录下新建xml文件3.启动类application.yml/properties添加以下代码4.效果展示 1.pom.xml引入日志依赖 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <vers

星晚的博客 1万+

yml配置sql日志打印_SpringBoot项目的logback日志配置(包括打印mybatis的sql语句)

关于logback日志的详解见这位仁兄的博客:Spring Boot-日志配置(超详细)我在这就开门见山直接介绍我们项目日志的配置使用吧!~1、基本介绍默认情况下,Spring Boot项目就会用Logback来记录日志,并用INFO级别输出到控制台。如下图:实际开发中我们不需要直接添加logback日志依赖。你会发现 spring-boot-starter 其中包含了 spring-boot-s...

weixin_36275605的博客 3335
上一篇: 修改redis 密码跟端口
下一篇: vue button按钮绑定回车登录事件
叫我阿龙啊
博客等级 码龄11年 179粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值