程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

搭建项目——统一日志处理

发布于2021-06-14 09:31     阅读(941)     评论(0)     点赞(7)     收藏(1)


spring boot内部使用Logback作为日志实现的框架。

Logback和log4j非常相似,如果你对log4j很熟悉,那对logback很快就会得心应手。

logback相对于log4j的一些优点:https://blog.csdn.net/caisini_vc/article/details/48551287

配置logback日志

删除application.properties中的日志配置,这里包括所有的日志打印例如 logging.level.root和mybatis的日志mybatis-plus.configuration.log-impl等都要删除

然后在resources目录下创建logback-spring.xml文件

将以下内容复制进去

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <!-- 尽量别用绝对路径,如果带参数不同容器路径解释可能不同,以下配置参数在pom.xml里 -->
  4. <property name="log.root.level" value="INFO"/> <!-- 日志级别 -->
  5. <property name="log.other.level" value="INFO"/> <!-- 其他日志级别 -->
  6. <property name="log.base"
  7. value="logs"/> <!-- 日志路径,这里是相对路径,web项目eclipse下会输出到eclipse的安装目录下,如果部署到linux上的tomcat下,会输出到tomcat/bin目录 下 -->
  8. <property name="log.moduleName" value="stuHealth"/> <!-- 模块名称, 影响日志配置名,日志文件名 -->
  9. <property name="log.max.size" value="20MB"/> <!-- 日志文件大小 -->
  10. <!--控制台输出 -->
  11. <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
  12. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  13. <pattern>%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger.%method:%L) - %cyan(%msg%n)
  14. </pattern>
  15. </encoder>
  16. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  17. <level>debug</level>
  18. </filter>
  19. </appender>
  20. <!-- info文件输出 -->
  21. <appender name="info" class="ch.qos.logback.core.rolling.RollingFileAppender">
  22. <File>${log.base}/${log.moduleName}-info.log
  23. </File><!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->
  24. <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
  25. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  26. <FileNamePattern>${log.base}/archive/${log.moduleName}-info-%d{yyyy-MM-dd}.%i.log
  27. </FileNamePattern>
  28. <!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
  29. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  30. <maxFileSize>${log.max.size}</maxFileSize>
  31. </timeBasedFileNamingAndTriggeringPolicy>
  32. </rollingPolicy>
  33. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  34. <level>INFO</level>
  35. <onMatch>ACCEPT</onMatch>
  36. <onMismatch>DENY</onMismatch>
  37. </filter>
  38. <!-- 日志输出的文件的格式 -->
  39. <layout class="ch.qos.logback.classic.PatternLayout">
  40. <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</pattern>
  41. </layout>
  42. </appender>
  43. <!-- debug文件输出 -->
  44. <appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
  45. <File>${log.base}/${log.moduleName}-debug.log
  46. </File><!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->
  47. <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
  48. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  49. <FileNamePattern>${log.base}/archive/${log.moduleName}-debug-%d{yyyy-MM-dd}.%i.log
  50. </FileNamePattern>
  51. <!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
  52. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  53. <maxFileSize>${log.max.size}</maxFileSize>
  54. </timeBasedFileNamingAndTriggeringPolicy>
  55. </rollingPolicy>
  56. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  57. <level>DEBUG</level>
  58. <onMatch>ACCEPT</onMatch>
  59. <onMismatch>DENY</onMismatch>
  60. </filter>
  61. <!-- 日志输出的文件的格式 -->
  62. <layout class="ch.qos.logback.classic.PatternLayout">
  63. <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</pattern>
  64. </layout>
  65. </appender>
  66. <!-- warning文件输出 -->
  67. <appender name="warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
  68. <File>${log.base}/${log.moduleName}-warn.log
  69. </File><!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->
  70. <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
  71. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  72. <FileNamePattern>${log.base}/archive/${log.moduleName}-warn-%d{yyyy-MM-dd}.%i.log
  73. </FileNamePattern>
  74. <!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
  75. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  76. <maxFileSize>${log.max.size}</maxFileSize>
  77. </timeBasedFileNamingAndTriggeringPolicy>
  78. </rollingPolicy>
  79. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  80. <level>WARN</level>
  81. <onMatch>ACCEPT</onMatch>
  82. <onMismatch>DENY</onMismatch>
  83. </filter>
  84. <!-- 日志输出的文件的格式 -->
  85. <layout class="ch.qos.logback.classic.PatternLayout">
  86. <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</pattern>
  87. </layout>
  88. </appender>
  89. <!-- error文件输出 -->
  90. <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
  91. <File>${log.base}/${log.moduleName}-error.log
  92. </File><!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->
  93. <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
  94. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  95. <FileNamePattern>${log.base}/archive/${log.moduleName}-error-%d{yyyy-MM-dd}.%i.log
  96. </FileNamePattern>
  97. <!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
  98. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  99. <maxFileSize>${log.max.size}</maxFileSize>
  100. </timeBasedFileNamingAndTriggeringPolicy>
  101. </rollingPolicy>
  102. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  103. <level>ERROR</level>
  104. <onMatch>ACCEPT</onMatch>
  105. <onMismatch>DENY</onMismatch>
  106. </filter>
  107. <!-- 日志输出的文件的格式 -->
  108. <layout class="ch.qos.logback.classic.PatternLayout">
  109. <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</pattern>
  110. </layout>
  111. </appender>
  112. <!-- error文件输出 -->
  113. <appender name="all" class="ch.qos.logback.core.rolling.RollingFileAppender">
  114. <File>${log.base}/${log.moduleName}-all.log
  115. </File><!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->
  116. <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
  117. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  118. <FileNamePattern>${log.base}/archive/${log.moduleName}-all-%d{yyyy-MM-dd}.%i.log
  119. </FileNamePattern>
  120. <!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
  121. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  122. <maxFileSize>${log.max.size}</maxFileSize>
  123. </timeBasedFileNamingAndTriggeringPolicy>
  124. </rollingPolicy>
  125. <!-- 日志输出的文件的格式 -->
  126. <layout class="ch.qos.logback.classic.PatternLayout">
  127. <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method:%L -%msg%n</pattern>
  128. </layout>
  129. </appender>
  130. <!-- 为某个包下的所有类的指定Appender 这里也可以指定类名称例如:com.aa.bb.ClassName -->
  131. <logger name="com.study.stuhealth" additivity="false">
  132. <level value="debug"/>
  133. <appender-ref ref="stdout"/>
  134. <appender-ref ref="info"/>
  135. <appender-ref ref="debug"/>
  136. <appender-ref ref="warn"/>
  137. <appender-ref ref="error"/>
  138. <appender-ref ref="all"/>
  139. </logger>
  140. <!-- root将级别为“DEBUG”及大于“DEBUG”的日志信息交给已经配置好的名为“Console”的appender处理,“Console”appender将信息打印到Console -->
  141. <root level="info">
  142. <appender-ref ref="stdout"/> <!-- 标识这个appender将会添加到这个logger -->
  143. <appender-ref ref="info"/>
  144. <appender-ref ref="debug"/>
  145. <appender-ref ref="warn"/>
  146. <appender-ref ref="error"/>
  147. <appender-ref ref="all"/>
  148. </root>
  149. </configuration>

将这个地方改成自己的项目名 

 运行后日志文件结构图

将错误日志输出到文件

我们一般要将错误信息输出到error错误文件中

我们就要在我们的统一异常处理类上添加@Slf4j注解(统一处理类可以看我文章)

和异常输出语句log.error("统一异常处理:", exception);

效果 

控制台上的报错信息就会同步到错误日志文件中。

原文链接:https://blog.csdn.net/qq_42374233/article/details/117803870



所属网站分类: 技术文章 > 博客

作者:你不要惹我

链接:http://www.javaheidong.com/blog/article/222695/e4fec83bd09e3bc837e7/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

7 0
收藏该文
已收藏

评论内容:(最多支持255个字符)