116 lines
5.4 KiB
XML
116 lines
5.4 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!DOCTYPE xml>
|
||
<included>
|
||
<!-- 引用 Spring Boot 的 logback 基础配置 -->
|
||
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
|
||
<!-- spring变量 -->
|
||
<springProperty scope="context" name="appName" source="spring.application.name"/>
|
||
|
||
<define name="hostname" class="cn.axzo.framework.logger.HostNamePropertyDefiner"/>
|
||
<define name="LOG_PREFIX" class="cn.axzo.framework.logger.LogPrefixhPropertyDefiner"/>
|
||
|
||
<property name="LOG_FILE" value="${appName}.log"/>
|
||
<!--日志路径-->
|
||
<property name="LOG_PATH" value="${LOG_PREFIX}/${appName}/"/>
|
||
<!-- 日志最大的历史 7天 -->
|
||
<property name="MAX_HISTORY" value="7"/>
|
||
|
||
<!--默认日志输出模式-->
|
||
<property name="PATTERN_CONSOLE" value="%date{HH:mm:ss} %highlight(%-5level) [%15thread] %cyan([%class{36}#%M:%L]) %msg%n"/>
|
||
<property name="PATTERN_FILE" value="%date{yyyy-MM-dd HH:mm:ss} %-5level --- [%15thread] [%X{ctxLogId}] %logger: %msg%n"/>
|
||
<property name="PATTERN_SKWALKING" value="%d{yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%thread] [%tid] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
|
||
|
||
<contextName>${appName}</contextName>
|
||
|
||
<!-- 控制台 Appender -->
|
||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||
<encoder>
|
||
<pattern>${PATTERN_CONSOLE}</pattern>
|
||
<charset>UTF-8</charset>
|
||
</encoder>
|
||
</appender>
|
||
|
||
<!-- 文件 Appender -->
|
||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
|
||
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
|
||
<pattern>${PATTERN_FILE}</pattern>
|
||
</layout>
|
||
</encoder>
|
||
<!-- 日志文件名 -->
|
||
<file>${LOG_PATH}/${LOG_FILE}</file>
|
||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||
<!-- 滚动后的日志文件名 -->
|
||
<fileNamePattern>${LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN:-${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz}</fileNamePattern>
|
||
<!-- 启动服务时,是否清理历史日志,一般不建议清理 -->
|
||
<cleanHistoryOnStart>${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart>
|
||
<!-- 日志文件,到达多少容量,进行滚动 -->
|
||
<maxFileSize>${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB}</maxFileSize>
|
||
<!-- 日志文件的总大小,0 表示不限制 -->
|
||
<totalSizeCap>${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-1GB}</totalSizeCap>
|
||
<!-- 日志文件的保留天数 -->
|
||
<maxHistory>${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-30}</maxHistory>
|
||
</rollingPolicy>
|
||
</appender>
|
||
<!-- 异步写入日志,提升性能 -->
|
||
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
|
||
<!-- 不丢失日志。默认的,如果队列的 80% 已满,则会丢弃 TRACT、DEBUG、INFO 级别的日志 -->
|
||
<discardingThreshold>0</discardingThreshold>
|
||
<!-- 更改默认的队列的深度,该值会影响性能。默认值为 256 -->
|
||
<queueSize>256</queueSize>
|
||
<appender-ref ref="FILE"/>
|
||
</appender>
|
||
|
||
<!-- 接入了skywalking才配置该项 -->
|
||
<appender name="SKYWALKING" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
|
||
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
|
||
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
|
||
<Pattern>${PATTERN_SKWALKING}</Pattern>
|
||
</layout>
|
||
</encoder>
|
||
</appender>
|
||
|
||
<!-- 控制台输出LOGSTASH JSON日志 -->
|
||
<appender name="LOGSTASH" class="ch.qos.logback.core.ConsoleAppender" addtivity="false">
|
||
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
|
||
<providers>
|
||
<timestamp>
|
||
<fieldName>@timestamp</fieldName>
|
||
<pattern>yyyy-MM-dd'T'HH:mm:ss.SSSx</pattern>
|
||
<timeZone>GMT+8</timeZone>
|
||
</timestamp>
|
||
<pattern>
|
||
<pattern>
|
||
{
|
||
"app":"${appName}",
|
||
"level":"%level",
|
||
"traceId":"%X{ctxLogId}",
|
||
"thread":"%thread",
|
||
"class":"%logger{40}",
|
||
"message":"%message",
|
||
"m":"#asJson{%message}",
|
||
"error_level":"%X{errorLevel}",
|
||
"error_type":"%X{errorType}",
|
||
"stack_trace":"%exception{20}"
|
||
}
|
||
</pattern>
|
||
</pattern>
|
||
</providers>
|
||
</encoder>
|
||
</appender>
|
||
<!-- 本地环境 -->
|
||
<springProfile name="local">
|
||
<root level="INFO">
|
||
<appender-ref ref="CONSOLE"/>
|
||
</root>
|
||
</springProfile>
|
||
<!-- 其它环境 -->
|
||
<springProfile name="dev,test,test1,uat,pre,master,default,pre-new">
|
||
<root level="INFO">
|
||
<appender-ref ref="ASYNC"/>
|
||
<appender-ref ref="LOGSTASH"/>
|
||
<appender-ref ref="SKYWALKING"/>
|
||
</root>
|
||
</springProfile>
|
||
|
||
</included> |