101 lines
4.2 KiB
XML
101 lines
4.2 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
|
|
|
<!-- 定义日志文件路径 -->
|
|
<property name="LOG_PATH" value="./logs"/>
|
|
<property name="APP_NAME" value="fund-sys"/>
|
|
|
|
<!-- 控制台输出 -->
|
|
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
|
<encoder>
|
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId:-}] %-5level %logger{50} - %msg%n</pattern>
|
|
<charset>UTF-8</charset>
|
|
</encoder>
|
|
</appender>
|
|
|
|
<!-- INFO级别日志文件 -->
|
|
<appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
<file>${LOG_PATH}/${APP_NAME}/info.log</file>
|
|
<encoder>
|
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId:-}] %-5level %logger{50} - %msg%n</pattern>
|
|
<charset>UTF-8</charset>
|
|
</encoder>
|
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
<fileNamePattern>${LOG_PATH}/${APP_NAME}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
|
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
|
<maxFileSize>100MB</maxFileSize>
|
|
</timeBasedFileNamingAndTriggeringPolicy>
|
|
<maxHistory>30</maxHistory>
|
|
</rollingPolicy>
|
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
|
<level>INFO</level>
|
|
<onMatch>ACCEPT</onMatch>
|
|
<onMismatch>DENY</onMismatch>
|
|
</filter>
|
|
</appender>
|
|
|
|
<!-- ERROR级别日志文件 -->
|
|
<appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
<file>${LOG_PATH}/${APP_NAME}/error.log</file>
|
|
<encoder>
|
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId:-}] %-5level %logger{50} - %msg%n</pattern>
|
|
<charset>UTF-8</charset>
|
|
</encoder>
|
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
<fileNamePattern>${LOG_PATH}/${APP_NAME}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
|
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
|
<maxFileSize>100MB</maxFileSize>
|
|
</timeBasedFileNamingAndTriggeringPolicy>
|
|
<maxHistory>30</maxHistory>
|
|
</rollingPolicy>
|
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
|
<level>ERROR</level>
|
|
<onMatch>ACCEPT</onMatch>
|
|
<onMismatch>DENY</onMismatch>
|
|
</filter>
|
|
</appender>
|
|
|
|
<!-- JSON格式日志(用于ELK采集) -->
|
|
<appender name="JSON_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
<file>${LOG_PATH}/${APP_NAME}/json.log</file>
|
|
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
|
|
<customFields>{"app_name":"${APP_NAME}"}</customFields>
|
|
<includeMdcKeyName>traceId</includeMdcKeyName>
|
|
<includeMdcKeyName>userId</includeMdcKeyName>
|
|
<includeMdcKeyName>tenantId</includeMdcKeyName>
|
|
</encoder>
|
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
<fileNamePattern>${LOG_PATH}/${APP_NAME}/json-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
|
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
|
<maxFileSize>100MB</maxFileSize>
|
|
</timeBasedFileNamingAndTriggeringPolicy>
|
|
<maxHistory>30</maxHistory>
|
|
</rollingPolicy>
|
|
</appender>
|
|
|
|
<!-- 开发环境 -->
|
|
<springProfile name="dev">
|
|
<root level="INFO">
|
|
<appender-ref ref="CONSOLE"/>
|
|
</root>
|
|
</springProfile>
|
|
|
|
<!-- 生产环境 -->
|
|
<springProfile name="prod">
|
|
<root level="INFO">
|
|
<appender-ref ref="CONSOLE"/>
|
|
<appender-ref ref="FILE_INFO"/>
|
|
<appender-ref ref="FILE_ERROR"/>
|
|
<appender-ref ref="JSON_FILE"/>
|
|
</root>
|
|
</springProfile>
|
|
|
|
<!-- 默认配置 -->
|
|
<root level="INFO">
|
|
<appender-ref ref="CONSOLE"/>
|
|
<appender-ref ref="FILE_INFO"/>
|
|
<appender-ref ref="FILE_ERROR"/>
|
|
</root>
|
|
|
|
</configuration>
|