主页 > 其他  > 

日志配置的一些思考

日志配置的一些思考

日志配置的一些思考 背景说明基础配置抽取子服务扩展配置

背景

基本所有的系统都需要完善的日志配置, 这里是一些常用的配置. 但是没有本地验证, 只能提供一份配置思路.

说明

不可直接用, 会报错, 提供一种配置思路. 不可直接用, 会报错, 提供一种配置思路. 不可直接用, 会报错, 提供一种配置思路.

基础配置抽取

这里是抽取的基础日志: basic-logback.xml

<?xml version="1.0" encoding="UTF-8"?> <included> <property name="pattern" value="%date %level [%thread] %logger{10} [%file : %line] %msg%n"/> <appender name="spring" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/spring.log</file> <encoder> <pattern>${pattern}</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${LOG_HOME}/spring.%i.log.gz</fileNamePattern> <minIndex>1</minIndex> <maxIndex>20</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>300M</maxFileSize> </triggeringPolicy> </appender> <appender name="accessAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/access.log</file> <encoder> <pattern>%date --- %level --- [%X{X-B3-TraceId}, %X{X-B3-SpanId}, %X{X-Span-Export}] --- [%thread] --- %logger{10} --- [%file : %line] %msg%n</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${LOG_HOME}/access.%i.log.gz</fileNamePattern> <minIndex>1</minIndex> <maxIndex>20</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>300M</maxFileSize> </triggeringPolicy> </appender> <appender name="warnError" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/warn_error.log</file> <encoder> <pattern>${pattern}</pattern> </encoder> <!-- 自定义过滤器 --> <filter class="com.xxx.xxx.xx.ExceptionThresholdFiler"> <level>WARN</level> <exceptionClazz>com.xxx.xxx.xxx.BusinessException</exceptionClazz> <onMatch>EDNY</onMatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${LOG_HOME}/warn_error.%i.log.gz</fileNamePattern> <minIndex>1</minIndex> <maxIndex>20</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>300M</maxFileSize> </triggeringPolicy> </appender> <appender name="businessError" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/business_error.log</file> <encoder> <pattern>${pattern}</pattern> </encoder> <!-- 自定义过滤器 --> <filter class="com.xxx.xxx.xx.ExceptionThresholdFiler"> <level>WARN</level> <exceptionClazz>com.xxx.xxx.xxx.BusinessException</exceptionClazz> <onMatch>EDNY</onMatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${LOG_HOME}/business_error.%i.log.gz</fileNamePattern> <minIndex>1</minIndex> <maxIndex>20</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>300M</maxFileSize> </triggeringPolicy> </appender> <!-- 自定义Logger --> <logger name="com.xxx.xxx.xxx.AccessLogRecorder" level="info" additivity="false"> <appender-ref ref="accessAppender"/> </logger> <root level="info"> <appender-ref ref="spring"/> <appender-ref ref="warnError"/> <appender-ref ref="businessError"/> </root> </included> 子服务扩展配置

子服务配置: servie1-logback.xml

<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false" scan="true" scanPeriod="3 seconds"> <!-- dev环境生效 --> <springProfile name="dev"> <property name="LOG_HOME" value="./logs"/> </springProfile> <!-- 非dev环境生效 --> <springProfile name="!dev"> <property name="LOG_HOME" value="${logging.path}"/> </springProfile> <!-- 外部公共配置 --> <include resource="basic-logback.xml"></include> <appender name="xxxxxService" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/service.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${LOG_HOME}/service/service.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>${pattern}</pattern> </encoder> </appender> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${pattern}</pattern> </encoder> </appender> <logger name="com.xxx.xxx" level="info" additivity="true"> <appender-ref ref="xxxxxService"></appender-ref> </logger> <springProfile name="dev"> <root> <appender-ref ref="console"/> </root> </springProfile> </configuration>
标签:

日志配置的一些思考由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“日志配置的一些思考