- 将所有微服务名称添加 aioj- 前缀 (auth-service -> aioj-auth-service) - 更新网关路由配置以使用新的服务名称 - 为所有服务添加 logback-spring.xml 日志配置 - 更新 .gitignore 排除 uploads 和 logs 目录 Co-Authored-By: Claude <noreply@anthropic.com>
120 lines
5.6 KiB
XML
120 lines
5.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!--debug="false" 表示关闭 Logback 框架自身的内部状态信息打印。-->
|
||
<configuration scan="true" scanPeriod="10 seconds" debug="false">
|
||
<!-- 引入 spring boot 默认日志颜色和基础配置-->
|
||
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
|
||
<!-- 定义变量 APP_NAME,从 Spring 环境变量中获取 spring.application.name 的值-->
|
||
<springProperty scope="context" name="APP_NAME" source="spring.application.name"/>
|
||
|
||
<!-- 定义时间格式,yyyy-MM 表示年-月,yyyy-MM-dd 表示年-月-日-->
|
||
<timestamp key="time-month" datePattern="yyyy-MM"/>
|
||
<timestamp key="time-month-day" datePattern="yyyy-MM-dd"/>
|
||
<!-- 定义变量 LOG_FILE_PATH,默认值为 ./logs/${APP_NAME},可以通过环境变量 LOG_PATH 覆盖 日志存储路径-->
|
||
<property name="LOG_FILE_PATH" value="${LOG_PATH:-./logs/${APP_NAME}}"/>
|
||
<!-- 定义日志格式
|
||
格式说明:
|
||
%d{yyyy-MM-dd HH:mm:ss.SSS}:日志记录时间,格式为年-月-日 时:分:秒.毫秒
|
||
[%thread]:日志记录线程名称
|
||
%-5level:日志级别,左对齐,占用 5 个字符宽度
|
||
%logger{50}:日志记录器名称,最多显示 50 个字符
|
||
-[%X{traceId:-}]:从 MDC 中获取 traceId 变量值,如果不存在则显示为空
|
||
%msg%n:日志消息内容,换行符
|
||
-->
|
||
<property name="FILE_LOG_PATTERN"
|
||
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -[%X{traceId:-}] %msg%n"/>
|
||
|
||
<!-- appender 控制台输出-->
|
||
<!--
|
||
<appender>: 这是 Logback 配置的根标签之一,用于定义一个日志输出目的地。
|
||
name="CONSOLE": 为这个 Appender 赋予一个唯一的名称,方便在 <root> 或 <logger> 标签中引用它。
|
||
class="ch.qos.logback.core.ConsoleAppender": 指定使用的实现类。
|
||
ConsoleAppender 是 Logback 库中专门用于将日志事件写入 System.out (标准输出) 或 System.err (标准错误) 的类。
|
||
这是我们在本地开发和测试时最常用的 Appender。
|
||
CONSOLE_LOG_PATTERN 是上面include的默认日志格式,这里直接引用即可
|
||
-->
|
||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||
<encoder>
|
||
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
|
||
<charset>UTF-8</charset>
|
||
</encoder>
|
||
</appender>
|
||
|
||
<!-- 全量info日志-->
|
||
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||
<file>${LOG_FILE_PATH}/${time-month}/${time-month-day}/info.log</file>
|
||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||
<fileNamePattern>${LOG_FILE_PATH}/${time-month}/${time-month-day}/info.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||
<maxFileSize>100MB</maxFileSize>
|
||
<maxHistory>31</maxHistory>
|
||
<totalSizeCap>100GB</totalSizeCap>
|
||
</rollingPolicy>
|
||
<encoder>
|
||
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||
<charset>UTF-8</charset>
|
||
</encoder>
|
||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||
<!-- 只记录 INFO 级别以及以上的日志的日志 -->
|
||
<level>INFO</level>
|
||
</filter>
|
||
</appender>
|
||
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||
<file>${LOG_FILE_PATH}/${time-month}/${time-month-day}/error.log</file>
|
||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||
<fileNamePattern>${LOG_FILE_PATH}/${time-month}/${time-month-day}/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
|
||
<maxFileSize>100MB</maxFileSize>
|
||
<maxHistory>31</maxHistory>
|
||
<totalSizeCap>100GB</totalSizeCap>
|
||
</rollingPolicy>
|
||
<encoder>
|
||
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||
<charset>UTF-8</charset>
|
||
</encoder>
|
||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||
<!-- 只记录 ERROR 级别以及以上的日志的日志 -->
|
||
<level>ERROR</level>
|
||
<onMatch>ACCEPT</onMatch>
|
||
<onMismatch>DENY</onMismatch>
|
||
</filter>
|
||
</appender>
|
||
|
||
<!-- 异步写入日志-->
|
||
<appender name="ASYNC_INFO"
|
||
class="ch.qos.logback.classic.AsyncAppender">
|
||
<discardingThreshold>0</discardingThreshold>
|
||
<queueSize>512</queueSize>
|
||
<appender-ref ref="INFO_FILE"/>
|
||
</appender>
|
||
<appender name="ASYNC_ERROR" class="ch.qos.logback.classic.AsyncAppender">
|
||
<discardingThreshold>0</discardingThreshold>
|
||
<queueSize>512</queueSize>
|
||
<appender-ref ref="ERROR_FILE"/>
|
||
</appender>
|
||
|
||
|
||
<!-- =========== 环境配置 打印到控制台 ===========-->
|
||
<springProfile name="dev">
|
||
<root level="INFO">
|
||
<appender-ref ref="CONSOLE"/>
|
||
<appender-ref ref="ASYNC_ERROR"/>
|
||
<appender-ref ref="ASYNC_INFO"/>
|
||
</root>
|
||
</springProfile>
|
||
|
||
<springProfile name="prod">
|
||
<root level="INFO">
|
||
<appender-ref ref="CONSOLE"/>
|
||
<appender-ref ref="ASYNC_ERROR"/>
|
||
<appender-ref ref="ASYNC_INFO"/>
|
||
</root>
|
||
</springProfile>
|
||
<appender name="USER_LOG" class="ch.qos.logback.core.FileAppender">
|
||
<file>${LOG_FILE_PATH}/${time-month}/${time-month-day}/auth.log</file>
|
||
<encoder>
|
||
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||
<charset>UTF-8</charset>
|
||
</encoder>
|
||
</appender>
|
||
<logger name="cn.meowrain.aioj.backend.gateway.filter.AuthGlobalFilter">
|
||
<appender-ref ref="USER_LOG"/>
|
||
</logger>
|
||
</configuration> |