springboot-logback

摘要:
春季启动日志返回配置1.模式解析:%d{yyyy-MM-dd‘T'HH:MM:ss.SXXXX}时区为%level的时间日志级别[%thread]线程名称[%logger{50}:%line]方法和与日志打印相对应的行数[uuid:%X{operation_id}]]这是日志返回的MDC机制。如果不使用mdc,则不需要

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>

免责声明:文章转载自《springboot-logback》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python中的subprocess.Popen() 执行shell命令Eclipse 插件开发 —— 深入理解查找(Search)功能及其扩展点下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python2.7实现websocket服务器,可以在web实时显示远程服务器日志

一、开始的话   使用python实现websocket服务器,可以在浏览器上实时显示远程服务器的日志。   之前写了一个发布系统,每次发布版本后,为了了解发布情况(进度、是否有错误)都会登录到服务器上查看日志,有点麻烦,如果发布的服务器比较多,难道要登录到每台服务器去看日志吗?作为新时代的运维,太不能接收这种重复操作的体力劳动了,于是一个看日志的功能就这...

logback 配置详解

一:根节点<configuration>包含的属性:   scan:   当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。   scanPeriod:   设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。   debug:...

[转]mysql 的日志的启动与查看

mysql有以下几种日志:错误日志:  -log-err查询日志:  -log慢查询日志: -log-slow-queries更新日志:    -log-update二进制日志:-log-bin 日志文件 文件中的信息 作用 错误日志 记录启动、运行或停止mysqld时出现的问题。 系统故障时定位故障原因 查询日志 记录建立的客户端连接和执行的...

(转)如何进行Monkey Test

如何进行MonkeyTest 目录 一 简介 二测试准备 三 基本命令格式 四 测试Log获取 五Monkey命令参数介绍 六 保存monkey log以及手机log到sdcard(新增) 一、简介 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正...

JavaScript 值删除对象(Object)的属性——delete

原网址:https://blog.csdn.net/weixin_43553701/article/details/90757945 删除对象属性的方法 JS中如何删除对象中的某一属性 1 var obj={ 2 name: 'zhagnsan', 3 age: 19 4 } 5 delete obj.name //true 6 type...

CentOS 7下Cloudera Manager及CDH 6.0.1安装过程详解

目录 一、概念介绍 1、CDH 概览 2、Cloudera Manager 概览 二、环境准备 1、软件版本选择 2、节点准备(四个节点) 3、配置主机名和hosts解析(所有节点) 4、关闭防火墙 5、关闭SELinux 6、添加定时任务 7、禁用透明大页面压缩 8、优化交换分区 三、安装 CM 和 CDH 1、配置 Cloudera...