首页 > 数据库 >SpringBoot使用默认的日志logback(2)—自定义配置+控制台输出sql语句

SpringBoot使用默认的日志logback(2)—自定义配置+控制台输出sql语句

时间:2024-10-20 20:21:38浏览次数:7  
标签:xml SpringBoot 自定义 spring 配置 默认 sql 日志 logback

原文链接:SpringBoot使用默认的日志logback(2)—自定义配置+控制台输出sql语句 – 每天进步一点点

上一篇文章中简单介绍了springboot通过系统配置的方式配置日志:

SpringBoot使用默认的日志logback(1)—系统配置

这篇文章简单介绍一下日志的自定义配置。

1.自定义配置

spring boot官方推荐的日志配置如下:

日志系统 配置
logback logback-spring.xml、logback-spring.groov、logbak.xml、logbak.groovy
log4j2 log4j2-spring.xml、log4j2.xml
JDK(Java Util Logging) logging.properties

上面是spring boot官方文档的提示内容,意思是:根据您的日志记录系统,将加载相应的文件使用。即如果我们使用logback日志框架,那么可以使用logback-spring.xml、logback-spring.groovy、logback.xml、logback.groovy之一作为配置文件来加载。

spring boot官方建议使用logback-spring.xml作为logback框架的日志配置文件(例如:使用logback-spring.xml而不是logback.xml),因为带-spring后缀的配置文件可以使用spring boot提供的一些高级功能,如profile多环境日志输出。

我们加入日志配置的方式

server: port: 8082   # spring配置 spring: datasource: url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver   # mybaits配置 mybatis: # 配置mapper的扫描,找到所有的mapper.xml映射文件 mapper-locations: classpath*:mappers/**/*Mapper.xml # 搜索指定包别名 type-aliases-package: site.longkui.**.entity   # 日志配置 (系统配置) #logging: # pattern: #配置日志输出格式 # file: "%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} === - %msg%n" # file: #配置日志输出的文件 # path: log1234 #日志输出的位置,默认是项目的根目录,会自动生成文件夹,而且默认状态日志名字都叫spring.log # level: # 配置输出日志级别 # root: debug #设置整个项目的日志输出级别默认info(root表示整个项目) # site.longkui.app.mapper: INFO   # 日志配置 logging: config: classpath:logback-config.xml #自定义日志配置文件

然后配置logback-spring.xml。配置位置在 src/main/resources。创建文件内容如下:

<?xml version="1.0" encoding="utf-8" ?> <!-- 1) 根节点<configuration>,包含下面三个属性:     scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。     scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。     debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。--> <configuration scan="true" scanPeriod="60" debug="false">   <!--控制台输出日志格式--> <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%d{yyyy-MM-dd HH:mm:ss} -- %-5level -- [%thread] -- %logger{50} --- %msg %n}"/> <!--文件输出日志格式--> <property name="FILE_LOG_PATTERN" value="${FILE_LOG_PATTERN:-%d{yyyy-MM-dd hh:mm:ss} -- %-5level -- [%thread] -- %logger{50} --- %msg %n}"/>   <!-- Appender: 设置日志信息的去向,常用的有以下几个 1) ch.qos.logback.core.ConsoleAppender (控制台) 2) ch.qos.logback.core.rolling.RollingFileAppender (文件大小到达指定尺寸的时候产生一个新文件) 3) ch.qos.logback.core.FileAppender (文件) -->   <!--控制台配置--> <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> <!--当环境是dev开发环境时,这部分配置才生效--> <springProfile name="dev"> <!--日志输出格式--> <encoder> <pattern>${CONSOLE_LOG_PATTERN}</pattern> </encoder> </springProfile> <!--当环境不是dev开发环境时,这部分配置才生效--> <springProfile name="!dev"> <!--日志输出格式--> <encoder> <pattern>--%logger{50} --- %msg %n</pattern> </encoder> </springProfile> </appender>   <!--日志记录文件配置--> <appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--当环境是production生产环境时,这部分配置才生效 即在production生产环境上,我们才将日志信息记录到日志文件中--> <springProfile name="production"> <!--日志文件保存路径,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建 -->--> <file>D:\idea\logs\example-logging.log</file> <!--基于大小和时间的轮转策略,当日志内容超出文件大小限制后,会自动生成一个文件来继续记录和重命名--> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!--当日志内容超出文件大小限制后,会自动生成一个文件来继续记录,文件按下面格式命名--> <fileNamePattern>D:\idea\logs\example-logging-%d{yyyy-MM-dd}-%i.log</fileNamePattern> <!--文件最大限制,默认10MB--> <maxFileSize>10MB</maxFileSize> <!--文件最大保存周期,默认7天--> <maxHistory>7</maxHistory> <!--所有归档文件总的大小限制--> <totalSizeCap>20GB</totalSizeCap> </rollingPolicy> <!--日志输出格式--> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> </encoder> </springProfile> </appender>   <!-- 用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender>。 <logger>仅有一个name属性,一个可选的level和一个可选的addtivity属性 name: 用来指定受此logger约束的某一个包或者具体的某一个类。 level: 用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF, 如果未设置此属性,那么当前logger将会继承上级的级别。 additivity: 是否向上级logger传递打印信息。默认是true。 <logger>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个logger --> <springProfile name="dev"> <logger name="site.longkui.app.mapper" level="DEBUG" /> </springProfile>   <root level="debug"> <appender-ref ref="consoleAppender"/> <appender-ref ref="fileAppender"/> </root>   </configuration>

上面的xml文件,是简单配置文件。

下面这篇文章会详细解释log4j2.xml文件配置。

2.控制台输出sql

编写程序时,经常需要输出sql,如果是系统配置日志的方式,只要参考上一篇文章,SpringBoot使用默认的日志logback(1)—系统配置 – 每天进步一点点 (longkui.site)

把root设置为debug即可。

这篇文章中自定义方式,设置下面的方式即可。

<springProfile name="dev"> <logger name="xxx.xxx.xxx.mapper" level="DEBUG" /> </springProfile>

注意,这个地方的logger的name要设置成自己项目的mapper,level=DEBUG。

这时,重新运行程序后,就可以在控制台打印出sql了。

 

标签:xml,SpringBoot,自定义,spring,配置,默认,sql,日志,logback
From: https://www.cnblogs.com/longkui-site/p/18487820

相关文章

  • count(*)、count(1)哪个更快?面试必问:通宵整理的十道经典MySQL必问面试题
    一、你是如何理解Count(*)和Count(1)的?这两个并没有区别,不要觉得count()会查出全部字段,而count(1)不会。所以count()会更慢,你觉得MySQL作者会这么做吗?可以很明确地告诉你们count()和count(1)是一样的,而正确有区别的是count(字段)。如果你count()的是具体的字段,那......
  • 【创作活动】高级sql技巧
    高级SQL技巧可以帮助数据库管理员和开发人员更有效地查询、管理和分析数据。这些技巧不仅能够提高查询的性能,还能增强数据处理的能力。下面是一些高级SQL技巧及其示例说明:1. 子查询子查询是嵌套在另一个查询中的查询。它可以用来过滤结果或作为条件的一部分。示例:sql深......
  • 【MySQL】子查询,合并查询
    目录1.子查询1.1.单行子查询1.2.多行子查询1.3.多列子查询 1.4.在from子句里面使用子查询 2.合并查询 1.子查询         子查询,也称为嵌套查询或子选择,是SELECT嵌入在另一个SQL查询的 WHERE 或 HAVING子句中的查询。子查询返回的数据由外部语句使用......
  • ubuntu 安装 MySql5.7(基于ARM架构 源码安装)
    1系统需求目标安装MySql5.7版本。系统环境:oracle云主机,arm架构确认主机架构如下图:查看是否有5.7版本的源apt-cachesearchmysql|grepmysql-server执行后发现只有8.0版本的,5.7版本只能通过源码安装了。 2下载MySql源码下载源码要选择合适的版本,官网下载地址......
  • 使用MySQL之创建计算字段
    1.创建计算字段存储在数据库表中的数据一般不是应用程序所需要的格式。下面举几个例子。如果想在一个字段中既显示公司名,又显示公司的地址,但这两个信息一般包含在不同的表列中。城市、州和邮政编码存储在不同的列中(应该这样),但邮件标签打印程序却需要把它们作为一个恰当格......
  • springboot+vue鞍师考研交流网站【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着高等教育的普及和就业竞争的加剧,越来越多的本科生选择继续深造,考研成为了他们提升学历、增强竞争力的重要途径。鞍山师范学院作为一所知名的教育机构,每年都有大量的学生投入到考研大军中。然而,考研过程中的信息获取、资料查找、经......
  • 【毕业设计】基于SpringBoot + Vue的工资信息管理系统
    一、项目背景随着信息技术的飞速发展,传统的工资管理方式已经无法满足现代企业对数据安全、效率和信息处理能力的需求。为了提高工资信息管理的效率和准确性,开发一套工资信息管理系统显得尤为重要。该系统通过信息化手段,能够有效管理员工工资、津贴、考勤记录等信息,为企业管理......
  • springboot+vue奥迪汽车信贷系统 【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着全球汽车市场的蓬勃发展,汽车信贷作为一种重要的金融工具,极大地促进了汽车销售与消费。奥迪汽车作为国际知名的豪华汽车品牌,其市场占有率和消费者群体日益扩大。在竞争激烈的市场环境中,提供高效、便捷的汽车信贷服务成为奥迪汽车吸......
  • springboot+vue案款发放管理系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景在当今社会,随着法治建设的不断推进和法律服务的日益完善,各类司法案件数量急剧增长,案款管理成为了司法机关和相关机构面临的一大挑战。传统的案款管理方式往往依赖于人工操作和纸质记录,不仅效率低下,还容易出错,难以保证案款的准确、及时......
  • 【附源码】景区旅游网站系统(源码+数据库+论文+ppt一整套齐全),java开发springboot框架
    ......