| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration scan="true" scanPeriod="60 seconds" debug="false">
- <statusListener class="ch.qos.logback.core.status.NopStatusListener"/>
- <!-- 日志存放路径 -->
- <property name="log.path" value="logs"/>
- <springProperty scope="context" name="springAppName" source="spring.application.name"/>
- <!-- 日志输出格式 -->
- <property name="log.pattern"
- value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} %tid - [%method,%line] - %msg%n"/>:ss} %-5level
- ${springAppName:-} %thread %logger %msg%n"/>
- <!-- 控制台输出 -->
- <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
- <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
- <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
- <pattern>${log.pattern}</pattern>
- </layout>
- <charset>utf8</charset>
- </encoder>
- </appender>
- <!-- 系统日志输出 -->
- <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${log.path}/log.log</file>
- <!-- 循环政策:基于时间创建日志文件 -->
- <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <!-- 日志文件名格式 -->
- <fileNamePattern>${log.path}/log.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
- <!-- 日志最大的历史 3天 -->
- <maxHistory>7</maxHistory>
- <!--单个日志文件的最大体积-->
- <maxFileSize>100MB</maxFileSize>
- <!--控制所有归档日志文件的总大小-->
- <totalSizeCap>500MB</totalSizeCap>
- <!--是否在应用启动的时候删除历史日志-->
- <cleanHistoryOnStart>true</cleanHistoryOnStart>
- </rollingPolicy>
- <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
- <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
- <pattern>${log.pattern}</pattern>
- </layout>
- </encoder>
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <!-- 过滤的级别 -->
- <level>info</level>
- <!-- 匹配时的操作:接收(记录) -->
- <onMatch>ACCEPT</onMatch>
- <!-- 不匹配时的操作:拒绝(不记录) -->
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
- <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${log.path}/error.log</file>
- <!-- 循环政策:基于时间创建日志文件 -->
- <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <!-- 日志文件名格式 -->
- <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
- <!-- 日志最大的历史 1天 -->
- <maxHistory>3</maxHistory>
- <!--单个日志文件的最大体积-->
- <maxFileSize>100MB</maxFileSize>
- <!--控制所有归档日志文件的总大小-->
- <totalSizeCap>500MB</totalSizeCap>
- <!--是否在应用启动的时候删除历史日志-->
- <cleanHistoryOnStart>true</cleanHistoryOnStart>
- </rollingPolicy>
- <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
- <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
- <pattern>${log.pattern}</pattern>
- </layout>
- </encoder>
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <!-- 过滤的级别 -->
- <level>error</level>
- <!-- 匹配时的操作:接收(记录) -->
- <onMatch>ACCEPT</onMatch>
- <!-- 不匹配时的操作:拒绝(不记录) -->
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
- <!--logstash配置-->
- <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
- <destination>127.0.0.1:8083</destination>-->
- <!-- 日志输出编码 -->
- <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
- <providers>
- <timestamp>
- <timeZone>UTC</timeZone>
- </timestamp>
- <pattern>
- <pattern>
- {
- "logLevel": "%level",
- "serviceName": "${springAppName:-}",
- "pid": "${PID:-}",
- "thread": "%thread",
- "class": "%logger{40}",
- "rest": "%message"
- }
- </pattern>
- </pattern>
- </providers>
- </encoder>
- <!-- <springProfile name="dev">-->
- <!-- <destination>127.0.0.1:80821</destination>-->
- <!-- <!– 日志输出编码 –>-->
- <!-- <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">-->
- <!-- <providers>-->
- <!-- <timestamp>-->
- <!-- <timeZone>UTC</timeZone>-->
- <!-- </timestamp>-->
- <!-- <pattern>-->
- <!-- <pattern>-->
- <!-- {-->
- <!-- "logLevel": "%level",-->
- <!-- "serviceName": "${springAppName:-}",-->
- <!-- "pid": "${PID:-}",-->
- <!-- "thread": "%thread",-->
- <!-- "class": "%logger{40}",-->
- <!-- "rest": "%message"-->
- <!-- }-->
- <!-- </pattern>-->
- <!-- </pattern>-->
- <!-- </providers>-->
- <!-- </encoder>-->
- <!-- </springProfile>-->
- <!-- <springProfile name="prod">-->
- <!-- <destination>127.0.0.1:80821</destination>-->
- <!-- <!– 日志输出编码 –>-->
- <!-- <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">-->
- <!-- <providers>-->
- <!-- <timestamp>-->
- <!-- <timeZone>UTC</timeZone>-->
- <!-- </timestamp>-->
- <!-- <pattern>-->
- <!-- <pattern>-->
- <!-- {-->
- <!-- "logLevel": "%level",-->
- <!-- "serviceName": "${springAppName:-}",-->
- <!-- "pid": "${PID:-}",-->
- <!-- "thread": "%thread",-->
- <!-- "class": "%logger{40}",-->
- <!-- "rest": "%message"-->
- <!-- }-->
- <!-- </pattern>-->
- <!-- </pattern>-->
- <!-- </providers>-->
- <!-- </encoder>-->
- <!-- </springProfile>-->
- <!--<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>-->
- </appender>
- <!-- 日志传输到skywalking中的appender,通过qrpc传输 -->
- <appender name="gpc-log" 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>${log.pattern}</Pattern>
- </layout>
- </encoder>
- </appender>
- <!--系统操作日志-->
- <root level="info">
- <appender-ref ref="file_info"/>
- <appender-ref ref="file_error"/>
- <appender-ref ref="console"/>
- <appender-ref ref="gpc-log"/>
- <appender-ref ref="LOGSTASH"/>
- </root>
- </configuration>
|