一: 控制台打印SQL

application.properties中添加如下即可在控制台打印sql

logging.level.com.fx.fxxt.mapper=debug

二:日志

因为Spring Boot使用的默认日志框架就是Logback,所以只需要修改Mapper的级别为Debug就可以。

新建logback.xml


  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
  3. <!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true -->
  4. <!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
  5. <!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
  6. <configuration scan="true" scanPeriod="10 seconds">
  7. <!--<include resource="org/springframework/boot/logging/logback/base.xml" />-->
  8. <contextName>logback</contextName>
  9. <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
  10. <!--Linux下的路径-->
  11. <!--<property name="log.path" value="/www/wwwroot/zdj_log/" />-->
  12. <property name="log.path" value="D:/log4J" />
  13. <!-- 彩色日志 -->
  14. <!-- 彩色日志依赖的渲染类 -->
  15. <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
  16. <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
  17. <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
  18. <!-- 彩色日志格式 -->
  19. <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
  20. <!--输出到控制台-->
  21. <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  22. <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
  23. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  24. <level>debug</level>
  25. </filter>
  26. <encoder>
  27. <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
  28. <!-- 设置字符集 -->
  29. <charset>UTF-8</charset>
  30. </encoder>
  31. </appender>
  32. <!--输出到文件-->
  33. <!-- 时间滚动输出 level为 DEBUG 日志 -->
  34. <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  35. <!-- 正在记录的日志文件的路径及文件名 -->
  36. <file>${log.path}/log_debug.log</file>
  37. <!--日志文件输出格式-->
  38. <encoder>
  39. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  40. <charset>UTF-8</charset> <!-- 设置字符集 -->
  41. </encoder>
  42. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  43. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  44. <!-- 日志归档 -->
  45. <fileNamePattern>${log.path}/debug/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  46. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  47. <maxFileSize>100MB</maxFileSize>
  48. </timeBasedFileNamingAndTriggeringPolicy>
  49. <!--日志文件保留天数-->
  50. <maxHistory>15</maxHistory>
  51. </rollingPolicy>
  52. <!-- 此日志文件只记录debug级别的 -->
  53. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  54. <level>debug</level>
  55. <onMatch>ACCEPT</onMatch>
  56. <onMismatch>DENY</onMismatch>
  57. </filter>
  58. </appender>
  59. <!-- 时间滚动输出 level为 INFO 日志 -->
  60. <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  61. <!-- 正在记录的日志文件的路径及文件名 -->
  62. <file>${log.path}/log_info.log</file>
  63. <!--日志文件输出格式-->
  64. <encoder>
  65. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  66. <charset>UTF-8</charset>
  67. </encoder>
  68. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  69. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  70. <!-- 每天日志归档路径以及格式 -->
  71. <fileNamePattern>${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  72. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  73. <maxFileSize>100MB</maxFileSize>
  74. </timeBasedFileNamingAndTriggeringPolicy>
  75. <!--日志文件保留天数-->
  76. <maxHistory>15</maxHistory>
  77. </rollingPolicy>
  78. <!-- 此日志文件只记录info级别的 -->
  79. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  80. <level>info</level>
  81. <onMatch>ACCEPT</onMatch>
  82. <onMismatch>DENY</onMismatch>
  83. </filter>
  84. </appender>
  85. <!-- 时间滚动输出 level为 WARN 日志 -->
  86. <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  87. <!-- 正在记录的日志文件的路径及文件名 -->
  88. <file>${log.path}/log_warn.log</file>
  89. <!--日志文件输出格式-->
  90. <encoder>
  91. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  92. <charset>UTF-8</charset> <!-- 此处设置字符集 -->
  93. </encoder>
  94. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  95. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  96. <fileNamePattern>${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  97. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  98. <maxFileSize>100MB</maxFileSize>
  99. </timeBasedFileNamingAndTriggeringPolicy>
  100. <!--日志文件保留天数-->
  101. <maxHistory>15</maxHistory>
  102. </rollingPolicy>
  103. <!-- 此日志文件只记录warn级别的 -->
  104. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  105. <level>warn</level>
  106. <onMatch>ACCEPT</onMatch>
  107. <onMismatch>DENY</onMismatch>
  108. </filter>
  109. </appender>
  110. <!-- 时间滚动输出 level为 ERROR 日志 -->
  111. <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  112. <!-- 正在记录的日志文件的路径及文件名 -->
  113. <file>${log.path}/log_error.log</file>
  114. <!--日志文件输出格式-->
  115. <encoder>
  116. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  117. <charset>UTF-8</charset> <!-- 此处设置字符集 -->
  118. </encoder>
  119. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  120. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  121. <fileNamePattern>${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  122. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  123. <maxFileSize>100MB</maxFileSize>
  124. </timeBasedFileNamingAndTriggeringPolicy>
  125. <!--日志文件保留天数-->
  126. <maxHistory>15</maxHistory>
  127. </rollingPolicy>
  128. <!-- 此日志文件只记录ERROR级别的 -->
  129. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  130. <level>ERROR</level>
  131. <onMatch>ACCEPT</onMatch>
  132. <onMismatch>DENY</onMismatch>
  133. </filter>
  134. </appender>
  135. <!--
  136. <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
  137. 以及指定<appender>。<logger>仅有一个name属性,
  138. 一个可选的level和一个可选的addtivity属性。
  139. name:用来指定受此logger约束的某一个包或者具体的某一个类。
  140. level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
  141. 还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
  142. 如果未设置此属性,那么当前logger将会继承上级的级别。
  143. addtivity:是否向上级logger传递打印信息。默认是true。
  144. -->
  145. <!--<logger name="org.springframework.web" level="info"/>-->
  146. <!--<logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>-->
  147. <!--
  148. 使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作:
  149. 第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息
  150. 第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别:
  151. -->
  152. <!--
  153. root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
  154. level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
  155. 不能设置为INHERITED或者同义词NULL。默认是DEBUG
  156. 可以包含零个或多个元素,标识这个appender将会添加到这个logger。
  157. -->
  158. <!--开发环境:打印控制台-->
  159. <springProfile name="dev">
  160. <logger name="com.spring.boot.springbootdemo.mapper" level="debug"/>
  161. </springProfile>
  162. <root level="info">
  163. <appender-ref ref="CONSOLE" />
  164. <appender-ref ref="DEBUG_FILE" />
  165. <appender-ref ref="INFO_FILE" />
  166. <appender-ref ref="WARN_FILE" />
  167. <appender-ref ref="ERROR_FILE" />
  168. </root>
  169. </configuration>

三 或者   .properties  添加如下


  1. #com.mycompany.mavenspringboot.controller 日志 WARN级别输出
  2. logging.level.com.xxx.xxxx.controller=WARN
  3. #com.mycompany.mavenspringboot.mapper sql日志 DEBUG级别输出
  4. logging.level.com.xxx.xxxx.mapper=DEBUG
  5. logging.file=logs/spring-boot-logging.log
  6. logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n
  7. logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n

结果如下

此位置就是生成的日志

四:

controller打印logger


  1. private Logger logger = LoggerFactory.getLogger(UserController.class);
  2. logger.info("获取成功");

原文地址:https://blog.csdn.net/mzhaocai/article/details/80747891

Spring Boot 集成日志logback + 控制台打印SQL的更多相关文章

  1. spring boot 配置mybatis plus 控制台打印sql

    spring boot 版本2.1.5 mybatis plus 版本3.1.1 aplication.properties中添加 logging.level.com.demo.system.mapp ...

  2. spring boot集成mybatis-plus插件进行自定义sql方法开发时报nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

    spring boot集成mybatis-plus插件进行自定义sql方法开发时报nested exception is org.apache.ibatis.binding.BindingExcept ...

  3. Spring Boot默认日志logback配置解析

    前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候,是带着下面几个问题来查资料的,你呢 如何引入日志? 日志输出格式以及输出方式如何配置? 代码中如何使用? 正文 Sp ...

  4. Spring Boot使用AOP在控制台打印请求、响应信息

    AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等. AOP简介 AOP全称Aspect Oriented Programming,面向切面,AOP主要实现的 ...

  5. 【spring boot】8.spring boot的日志框架logback使用

    在继续上一篇的Debug调试之后,把spring boot的日志框架使用情况逐步蚕食. 参考:http://tengj.top/2017/04/05/springbo 开篇之前,贴上完整applica ...

  6. Spring Boot 使用 Log4j2 & Logback 输出日志到 EKL

    文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK ...

  7. spring boot集成mybatis只剩两个sql 并提示 Cannot obtain primary key information from the database, generated objects may be incomplete

    前言 spring boot集成mybatis时只生成两个sql, 搞了一个早上,终于找到原因了 找了很多办法都没有解决, 最后注意到生成sql的时候打印了一句话: Cannot obtain pri ...

  8. spring boot下使用logback或log4j生成符合Logstash标准的JSON格式

    spring boot下使用logback或log4j生成符合Logstash标准的JSON格式 一.依赖 由于配置中使用了json格式的日志输出,所以需要引入如下依赖 "net.logst ...

  9. Spring Boot 之日志记录

    Spring Boot 之日志记录 Spring Boot 支持集成 Java 世界主流的日志库. 如果对于 Java 日志库不熟悉,可以参考:细说 Java 主流日志工具库 关键词: log4j, ...

随机推荐

  1. FPGA按键功能

    1.如何判断按键成功按下? 2.在什么时候采集数据? 按键在按下的过程中会产生大约2ms-3ms抖动,如果此时此刻采集数据来判断按键是不准确的,那么为了采集到准确的数据需要设置一个大约10ms左右的计 ...

  2. LintCode_14 二分查找

    题目 给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1. 样例 在数组 [1 ...

  3. meta标签、利用媒体查询 link不同的CSS文件

    利用媒体查询 link不同的CSS文件:<link rel="stylesheet" media="screen and (min-width:1px) and ( ...

  4. ObjectIntputStream / ObjectOutputStream 类

    使用 ObjectInputStream 类 ObjectOutputStream类 将对象整体 读 / 写文件中: [读写对象] 1. ObjectInputStream类 (1)基本概念 java ...

  5. JDK8 Stream 数据流效率分析

    JDK8 Stream 数据流效率分析 Stream 是Java SE 8类库中新增的关键抽象,它被定义于 java.util.stream (这个包里有若干流类型: Stream<T> ...

  6. PHP学习(运算符)

    PHP运算符一般分为算术运算符.赋值运算符.比较运算符.三元运算符.逻辑运算符.字符串连接运算符.错误控制运算符. 算术运算符 主要是用于进行算术运算的,例如:加法运算.减法运算.乘法运算.除法运算 ...

  7. 使用Fiddler抓取到的“姐夫酷”API接口

    下午本来准备抓取些网页视频地址,做一个小的视频app,用来学习ijkplayer,无意中发现了一个app--姐夫酷,这是一个很简单的网页,它也有相应的一个比较简单的android app. 于是心血来 ...

  8. text()和html()区别

    这两天看了一下html和jquery的选择器,并对w3chool上面的在线编辑产生了兴趣,但是在用textarea展示后台纯html的时候发生错误,查阅各种资料发现不行--心态炸了.废话不多说了,上干 ...

  9. 接口测试 Postman 做接口自动化测试_入门篇

    可能是目前最好用的web接口调试工具 无需注册(注册后可多终端同步用例) 免费(每年付费$60可用云服务,30天免费试用) 保存历史记录 支持录制请求 基于Chrome的V8引擎,支持JS脚本(基本支 ...

  10. javascript正则表达式和字符串RegExp

    这篇文章主要介绍了javascript正则表达式和字符串RegExp and String(一)的相关资料,需要的朋友可以参考下     前言     正则表达式是javascript非常重要和常用的 ...