zoukankan      html  css  js  c++  java
  • springboot-logback

    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>
  • 相关阅读:
    Python入门
    实现QQ、微信、新浪微博和百度第三方登录(Android Studio)
    Android 微信第三方登录
    Javascript获取随机数
    JavaScript for循环 闭包 【转】
    JavaScript中数组的增删改查
    【网络基础系列一】客户/服务器模型
    jQuery选择器
    局部代码块
    接口中定义变量
  • 原文地址:https://www.cnblogs.com/gc65/p/10066751.html
Copyright © 2011-2022 走看看