最近在帮团队整理一系列开发规范,发现日志规范这块内容大家之前一直都没有重视过。打日志永远看心情,没有特别规定什么样的信息该记录日志,什么样的信息不该记录。
并且,对于后面的日志分析等基本上可以说是寸步难行。
logback-spring.xml sample:(需要替换appName)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
| <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<contextName>logback</contextName>
<springProperty name="logging.file.path" source="logging.file.path" defaultValue="/opt/shifpeng/logs"/> <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/> <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/> <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/> <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([X-TraceId:%X{X-TraceId}] [%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>debug</level> </filter> <encoder> <Pattern>${CONSOLE_LOG_PATTERN}</Pattern> <charset>UTF-8</charset> </encoder> </appender>
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${logging.file.path}/appliactionName.log</file> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [X-TraceId:%X{X-TraceId}] [%thread] %-5level %logger{50} [%file : %line] - %msg%n</pattern> <charset>UTF-8</charset> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${logging.file.path}/appliactionName-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>50MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <totalSizeCap>10GB</totalSizeCap> <maxHistory>7</maxHistory> </rollingPolicy> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>info</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender>
<logger name="com.shifpeng.appliactionName" level="info"/> <logger name="com.shifpeng.appliactionName.mapper" level="error"/>
<springProfile name="dev"> <root level="debug"> <appender-ref ref="CONSOLE"/> </root> </springProfile>
<springProfile name="test,prod"> <root level="info"> <appender-ref ref="INFO_FILE"/> </root> </springProfile>
</configuration>
|
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !