springboot-logback

news/2024/7/6 22:04:18

 

springboot logback配置

1.pattern解析:

  %d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}   带时区的时间

  %level   日志级别

  [%thread]   线程名

  [%logger{50}:%line]    打印日志对应的方法和行数
  [uuid:%X{operation_id}]   这个是logback的MDC机制,没有使用mdc的话不需要用这个字段
  %msg%n          这个是要打印的数据,%n是换行
  %caller{2, DISP_CALLER_EVAL}   这个是指打印调用栈,即当前方法和调用这个方法的父级方法(这里配置2,只会往上打印一层)

<property name="error.pattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX} %level [%thread] [%logger{50}:%line] [uuid:%X{operation_id}] %msg%n %caller{2, DISP_CALLER_EVAL}"></property>

2.将不同级别的日志打印到不同的文件:
  下面的一句话表示这个appender只接受error日志的级别,其它级别的日志丢弃
      <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <level>ERROR</level>
             <onMatch>ACCEPT</onMatch>
             <onMismatch>DENY</onMismatch>
         </filter>
3.logger配置
  每个logger可以配置对应的package,打印级别,additivity="true"表示这个logger匹配的日志,依然会抛到上层,父logger(也就是root),root可以打印到控制台
  
appender-ref 指定appender,每个appender定义具体的工具方式,打印、压缩策略
      <logger name="com.hikvision.log" level="DEBUG" additivity="false">
              <appender-ref ref="only-error" additivity="false"></appender-ref>
              <appender-ref ref="no-error"></appender-ref>
         </logger>
  1 <configuration scan="true" scanPeriod="30 seconds">
  2 
  3     <!-- <property name="FILE_PATH" value="./logs"></property> -->
  4     <property name="model" value="elk"></property>
  5     <!-- <property name="USER_NAME" value="gc"></property>
  6     <property name="OS" value="win"></property> -->
  7 
  8     <contextName>my_logback_test</contextName>
  9 
 10     <property name="log.pattern"
 11         value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX} %level [%thread] [%logger{50}:%line] [uuid:%X{operation_id}] %msg%n"></property>
 12     <property name="error.pattern"
 13         value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX} %level [%thread] [%logger{50}:%line] [uuid:%X{operation_id}] %msg%n %caller{2, DISP_CALLER_EVAL}"></property>
 14 
 15     <appender name="no-error"
 16         class="ch.qos.logback.core.rolling.RollingFileAppender">
 17         <file>${log.path:-./logs}/${model}.log</file>
 18         <encoder>
 19             <pattern>${log.pattern}</pattern>
 20             <charset>UTF-8</charset>
 21         </encoder>
 22         <rollingPolicy
 23             class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
 24             <fileNamePattern>${model}.%i.log.zip</fileNamePattern>
 25             <minIndex>1</minIndex>
 26             <maxIndex>10</maxIndex>
 27         </rollingPolicy>
 28         <triggeringPolicy
 29             class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
 30             <maxFileSize>20MB</maxFileSize>
 31         </triggeringPolicy>
 32         <filter class="ch.qos.logback.classic.filter.LevelFilter">
 33             <level>TRACE</level>
 34             <onMatch>ACCEPT</onMatch>
 35             <onMismatch>NEUTRAL</onMismatch>
 36         </filter>
 37         <filter class="ch.qos.logback.classic.filter.LevelFilter">
 38             <level>DEBUG</level>
 39             <onMatch>ACCEPT</onMatch>
 40             <onMismatch>NEUTRAL</onMismatch>
 41         </filter>
 42         <filter class="ch.qos.logback.classic.filter.LevelFilter">
 43             <level>INFO</level>
 44             <onMatch>ACCEPT</onMatch>
 45             <onMismatch>NEUTRAL</onMismatch>
 46         </filter>
 47         <filter class="ch.qos.logback.classic.filter.LevelFilter">
 48             <level>WARN</level>
 49             <onMatch>ACCEPT</onMatch>
 50             <onMismatch>NEUTRAL</onMismatch>
 51         </filter>
 52     </appender>
 53 
 54     <appender name="only-error"
 55         class="ch.qos.logback.core.rolling.RollingFileAppender">
 56         <file>${log.path:-./logs}/${model}.error.log</file>
 57         <encoder>
 58             <pattern>${error.pattern}</pattern>
 59             <charset>UTF-8</charset>
 60         </encoder>
 61         <rollingPolicy
 62             class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
 63             <fileNamePattern>${model}.%i.log.zip</fileNamePattern>
 64             <minIndex>1</minIndex>
 65             <maxIndex>10</maxIndex>
 66         </rollingPolicy>
 67         <triggeringPolicy
 68             class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
 69             <maxFileSize>20MB</maxFileSize>
 70         </triggeringPolicy>
 71         <filter class="ch.qos.logback.classic.filter.LevelFilter">
 72             <level>ERROR</level>
 73             <onMatch>ACCEPT</onMatch>
 74             <onMismatch>DENY</onMismatch>
 75         </filter>
 76     </appender>
 77 
 78     <appender name="includedConsole"
 79         class="ch.qos.logback.core.ConsoleAppender">
 80         <encoder>
 81             <pattern>${log.pattern}</pattern>
 82         </encoder>
 83     </appender>
 84 
 85 
 86     <root level="INFO">
 87         <appender-ref ref="includedConsole"></appender-ref>
 88     </root>
 89     <springProfile name="prod">
 90         <logger name="com.hikvision.log" level="DEBUG" additivity="false">
 91             <appender-ref ref="only-error" additivity="false"></appender-ref>
 92             <appender-ref ref="no-error"></appender-ref>
 93         </logger>
 94     </springProfile>
 95     <springProfile name="dev">
 96         <logger name="com.hikvision.log" level="DEBUG" additivity="true">
 97             <appender-ref ref="only-error" additivity="false"></appender-ref>
 98             <appender-ref ref="no-error"></appender-ref>
 99         </logger>
100     </springProfile>
101     <springProfile name="test">
102         <logger name="com.hikvision.log" level="DEBUG" additivity="true">
103             <appender-ref ref="only-error" additivity="false"></appender-ref>
104             <appender-ref ref="no-error"></appender-ref>
105         </logger>
106     </springProfile>
107 
108 </configuration>

 

转载于:https://www.cnblogs.com/gc65/p/10066751.html


http://www.niftyadmin.cn/n/2455055.html

相关文章

重建索引报错-python数据分析

obj3 pd.Series([blue, purple, yellow], index[0, 2, 4]) obj3.reindex(range(6), methodffill) 此时会爆出一大堆错误。 出错原因是&#xff1a;之前 obj3 的索引是字符串类型&#xff0c;重新索引是 range&#xff0c;int 类型。这样数据类型不一样&#xff0c;导致出错 修…

笔记:后台设置网站广告

可以参考的内容&#xff1a;kingEditor单文件上传组件使用&#xff0c;表单批量提交及其优化&#xff0c;图片预览效果&#xff0c;数据回显 效果图&#xff1a; jsp页面&#xff1a;sitead.jsp <% page language"java" import"java.util.*" pageEncod…

解决iframe在iPad内不能滚动的问题

解决iframe在iPad内不能滚动的问题 2012-07-16 21:07:22在iPad1及iPad2里面浏览含有iframe的Web页面&#xff0c;会出现一个很抓狂的问题&#xff0c;就是iframe内引用的页面内容不能上下滑动&#xff08;滚动&#xff09;&#xff0c;测试了一下其他的设备&#xff0c;这个问题…

win 导出目录结构到文件

最简命令: 当我们要查看某个项目的文件结构时..... step1: 进入文件夹 cd xxx 或 在当前文件夹按"shift 鼠标右键" > 在此处打开命令窗口 step2: 将当前文件夹树形结构写入lb.txt中 tree /f >lb.txt 结果 转载于:https://www.cnblogs.com/rushAvenda/p/100…

笔记:后台商品类目

可以参考的内容&#xff1a;js分页&#xff0c;checkbox全选中和取消&#xff0c;类目的加载&#xff0c;删除&#xff0c;添加 涉及的3张页面&#xff1a; 第一张&#xff1a;商品类目一览表页面 第二张&#xff1a;类别列表页面 第三张&#xff1a;添加商品分类页面 对应的…

Spring/Spring MVC/Spring Boot的区别

1.spring boot更简单&#xff0c;容易上手&#xff1b; 2.spring boot对第三方技术进行了很好的封装&#xff0c;提供了大量的第三方接口&#xff1b; 3.通过依赖配置&#xff0c;不需要XML等配置文件&#xff1b; 4.提供了安全性等特性。 Spring Boot与Spring的区别 Spring Bo…

HDU - 4323 - Magic Number

先上题目&#xff1a; Magic Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1433 Accepted Submission(s): 605 Problem DescriptionThere are many magic numbers whose lengths are less than 10. Gi…

使用 rails console 重置 Redmine 管理员密码

忘记密码是常见的事&#xff0c;一般系统会配置有找回密码功能&#xff0c;如果未配置该功能&#xff0c;可以请管理员重置密码。 如果管理员密码忘记&#xff0c;又恰好没有配置找回密码的功能&#xff0c;就比较尴尬了。即使想直接修改数据库&#xff0c;可密码是加密字段&am…