1.整合mybatis

在yml中配置

  1. mybatis:
  2. config-location: classpath:mybatis/mybatis-config.xml
  3. logging:
  4. config: classpath:logback.xml

mybatis-config

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <settings>
  7. <!-- 获取数据库自增主键值 -->
  8. <setting name="useGeneratedKeys" value="true"/>
  9. <!-- 使用列标签替换列别名 默认:true -->
  10. <setting name="useColumnLabel" value="true"/>
  11. <!-- 开启驼峰命名转换 -->
  12. <setting name="mapUnderscoreToCamelCase" value="true"/>
  13. <!--打印SQL语句-->
  14. <!-- <setting name="logImpl" value="STDOUT_LOGGING"/>-->
  15. <!-- 开启缓存 -->
  16. <setting name="cacheEnabled" value="true"/>
  17. <!-- 返回原有数据结构 -->
  18. <setting name="callSettersOnNulls" value="true"/>
  19. </settings>
  20. </configuration>

2.整合 logback

https://blog.csdn.net/wangh92/article/details/79657679

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration scan="true" scanPeriod="10 seconds">
  3. <!-- 彩色日志 -->
  4. <!-- 彩色日志依赖的渲染类 -->
  5. <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
  6. <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
  7. <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
  8. <!-- 彩色日志格式 -->
  9. <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(%logger){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}" />
  10. <!--包名输出缩进对齐-->
  11. <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}}" />
  12. <contextName>wongH</contextName>
  13. <!--文件夹在当前项目磁盘根目录-->
  14. <property name="LOG_PATH" value="/wongH_log" />
  15. <!--设置系统日志目录-->
  16. <property name="APPDIR" value="logs" />
  17. <!-- 日志记录器,日期滚动记录
  18. ERROR 级别
  19. -->
  20. <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
  21. <!-- 正在记录的日志文件的路径及文件名 -->
  22. <file>${LOG_PATH}/${APPDIR}/wongH_log_error.log</file>
  23. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  24. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  25. <!-- 归档的日志文件的路径,例如今天是1992-11-06日志,当前写的日志文件路径为file节点指定,
  26. 可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
  27. 而1992-11-06的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  28. <fileNamePattern>${LOG_PATH}/${APPDIR}/error/wongH_log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  29. <!-- 除按日志记录之外,还配置了日志文件不能超过10MB,若超过10MB,日志文件会以索引0开始,
  30. 命名日志文件,例如log-error-1992-11-06.0.log -->
  31. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  32. <maxFileSize>10MB</maxFileSize>
  33. </timeBasedFileNamingAndTriggeringPolicy>
  34. </rollingPolicy>
  35. <!-- 追加方式记录日志 -->
  36. <append>true</append>
  37. <!-- 日志文件的格式 -->
  38. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  39. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%thread] %logger Line:%-3L - %msg%n</pattern>
  40. <charset>utf-8</charset>
  41. </encoder>
  42. <!-- 此日志文件记录error级别的 -->
  43. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  44. <level>error</level>
  45. <onMatch>ACCEPT</onMatch>
  46. <onMismatch>DENY</onMismatch>
  47. </filter>
  48. </appender>
  49. <!-- 日志记录器,日期滚动记录
  50. WARN 级别
  51. -->
  52. <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
  53. <!-- 正在记录的日志文件的路径及文件名 -->
  54. <file>${LOG_PATH}/${APPDIR}/wongH_log_warn.log</file>
  55. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  56. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  57. <!-- 归档的日志文件的路径,例如今天1992-11-06日志,当前写的日志文件路径为file节点指定,
  58. 可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
  59. 而1992-11-06的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  60. <fileNamePattern>${LOG_PATH}/${APPDIR}/warn/wongH_log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  61. <!-- 除按日志记录之外,还配置了日志文件不能超过10MB,若超过10MB,日志文件会以索引0开始,
  62. 命名日志文件,例如log-warn-1992-11-06.0.log -->
  63. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  64. <maxFileSize>10MB</maxFileSize>
  65. </timeBasedFileNamingAndTriggeringPolicy>
  66. </rollingPolicy>
  67. <!-- 追加方式记录日志 -->
  68. <append>true</append>
  69. <!-- 日志文件的格式 -->
  70. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  71. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%thread] %logger Line:%-3L - %msg%n</pattern>
  72. <charset>utf-8</charset>
  73. </encoder>
  74. <!-- 此日志文件只记录warn级别的 -->
  75. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  76. <level>warn</level>
  77. <onMatch>ACCEPT</onMatch>
  78. <onMismatch>DENY</onMismatch>
  79. </filter>
  80. </appender>
  81. <!-- 日志记录器,日期滚动记录
  82. INFO 级别
  83. -->
  84. <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
  85. <!-- 正在记录的日志文件的路径及文件名 -->
  86. <file>${LOG_PATH}/${APPDIR}/wongH_log_info.log</file>
  87. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  88. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  89. <!-- 归档的日志文件的路径,例如今天是1992-11-06日志,当前写的日志文件路径为file节点指定,
  90. 可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
  91. 而1992-11-06的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  92. <fileNamePattern>${LOG_PATH}/${APPDIR}/info/wongH_log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  93. <!-- 除按日志记录之外,还配置了日志文件不能超过10MB,若超过10MB,日志文件会以索引0开始,
  94. 命名日志文件,例如log-info-1992-11-06.0.log -->
  95. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  96. <maxFileSize>10MB</maxFileSize>
  97. </timeBasedFileNamingAndTriggeringPolicy>
  98. </rollingPolicy>
  99. <!-- 追加方式记录日志 -->
  100. <append>true</append>
  101. <!-- 日志文件的格式 -->
  102. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  103. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%thread] %logger Line:%-3L - %msg%n</pattern>
  104. <charset>utf-8</charset>
  105. </encoder>
  106. <!-- 此日志文件只记录info级别的 -->
  107. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  108. <level>info</level>
  109. <onMatch>ACCEPT</onMatch>
  110. <onMismatch>DENY</onMismatch>
  111. </filter>
  112. </appender>
  113. <!-- 日志记录器,日期滚动记录
  114. DEBUG 级别
  115. -->
  116. <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
  117. <!-- 正在记录的日志文件的路径及文件名 -->
  118. <file>${LOG_PATH}/${APPDIR}/wongH_log_debug.log</file>
  119. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  120. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  121. <!-- 归档的日志文件的路径,例如今天是1992-11-06日志,当前写的日志文件路径为file节点指定,
  122. 可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
  123. 而1992-11-06的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  124. <fileNamePattern>${LOG_PATH}/${APPDIR}/debug/wongH_log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  125. <!-- 除按日志记录之外,还配置了日志文件不能超过10MB,若超过10MB,日志文件会以索引0开始,
  126. 命名日志文件,例如log-debug-1992-11-06.0.log -->
  127. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  128. <maxFileSize>10MB</maxFileSize>
  129. </timeBasedFileNamingAndTriggeringPolicy>
  130. </rollingPolicy>
  131. <!-- 追加方式记录日志 -->
  132. <append>true</append>
  133. <!-- 日志文件的格式 -->
  134. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  135. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%thread] %logger Line:%-3L - %msg%n</pattern>
  136. <charset>utf-8</charset>
  137. </encoder>
  138. <!-- 此日志文件只记录debug级别的 -->
  139. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  140. <level>debug</level>
  141. <onMatch>ACCEPT</onMatch>
  142. <onMismatch>DENY</onMismatch>
  143. </filter>
  144. </appender>
  145. <!-- ConsoleAppender 控制台输出日志 -->
  146. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  147. <!--encoder 默认配置为PatternLayoutEncoder-->
  148. <encoder>
  149. <pattern>${CONSOLE_LOG_PATTERN}</pattern>
  150. <!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level -&#45;&#45; [%thread] %logger Line:%-3L - %msg%n</pattern>-->
  151. <charset>utf-8</charset>
  152. </encoder>
  153. <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
  154. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  155. <level>debug</level>
  156. </filter>
  157. </appender>
  158. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  159. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  160. <level>debug</level>
  161. </filter>
  162. <encoder>
  163. <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
  164. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern>
  165. </encoder>
  166. </appender>
  167. <!--myibatis log configure 和项目的mybatis日志打印同等效果-->
  168. <logger name="com.apache.ibatis" level="DEBUG"/>
  169. <logger name="java.sql.Connection" level="DEBUG"/>
  170. <logger name="java.sql.Statement" level="DEBUG"/>
  171. <logger name="java.sql.PreparedStatement" level="DEBUG"/>
  172. <!-- FrameworkServlet日志-->
  173. <logger name="org.springframework" level="WARN" />
  174. <!-- mybatis日志打印-->
  175. <logger name="org.apache.ibatis" level="DEBUG" />
  176. <logger name="java.sql" level="DEBUG" />
  177. <!-- <logger name="com.zzht.readmeter.db" additivity="true" level="error"/>-->
  178. <!-- 日志输出级别 -->
  179. <root level="INFO">
  180. <appender-ref ref="STDOUT" />
  181. <appender-ref ref="DEBUG" />
  182. <appender-ref ref="INFO" />
  183. <appender-ref ref="ERROR" />
  184. <!-- 生产环境将请stdout去掉 -->
  185. <appender-ref ref="STDOUT" />
  186. </root>
  187. </configuration>

3.注意

1.在logback中配置了sql打印,则不要在 mybatis-config中配置sql打印,否则在日志中就不会记录sql

2.如果配置日志启动出现这样的画面,

https://www.cnblogs.com/linyb-geek/p/13305331.html

  1. logging:
  2. level:
  3. org:
  4. springframework:
  5. boot:
  6. autoconfigure:
  7. logging: info

  1. logging.level.org.springframework. boot.autoconfigure.logging: info

springboot2的自动装配的日志是debug级别,如果配置了debug级别日志记录,则会自动打印,所以关闭这个的日志打印即可

其实这段日志是springboot2的自动装配日志报告。

spring boot整合logback和mybatis - 图1