- 应用骨架: Solon + MyBatis-Plus + PostgreSQL + Redis + Sa-Token - 核心链路: 回调网关 → 消息落库(幂等) → 分发队列(FOR UPDATE SKIP LOCKED) → worker消费/重试/死信 - 多租户隔离: 前缀法账号映射, 所有业务表带 tenant_id - 管理后台: FreeMarker 渲染, 租户/授权/队列/用量管理页面 - 历史消息补拉: 水位线驱动, getRoamMsg/getGroupMsg 增量拉取, 兜底回调丢失 - msg_key 统一算法(回调/补拉共享, 跨路径去重) Co-Authored-By: Claude <noreply@anthropic.com>
36 lines
1.4 KiB
XML
36 lines
1.4 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<configuration scan="true" scanPeriod="60 seconds">
|
|
|
|
<!-- 控制台输出(GBK,适配 Windows 终端) -->
|
|
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
|
<encoder>
|
|
<charset>GBK</charset>
|
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %magenta(${PID:-}) --- %-15([%15.15thread]) %-56(%cyan(%-40.40logger{39})) : %msg%n</pattern>
|
|
</encoder>
|
|
</appender>
|
|
|
|
<!-- 文件输出(按天滚动) -->
|
|
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
<file>logs/imutil.log</file>
|
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
|
<fileNamePattern>logs/imutil.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
|
<maxFileSize>100MB</maxFileSize>
|
|
<maxHistory>30</maxHistory>
|
|
<totalSizeCap>5GB</totalSizeCap>
|
|
</rollingPolicy>
|
|
<encoder>
|
|
<charset>UTF-8</charset>
|
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:-} --- %-15([%15.15thread]) %-56(%-40.40logger{39}) : %msg%n</pattern>
|
|
</encoder>
|
|
</appender>
|
|
|
|
<root level="INFO">
|
|
<appender-ref ref="CONSOLE"/>
|
|
<appender-ref ref="FILE"/>
|
|
</root>
|
|
|
|
<!-- 本项目包级别调试 -->
|
|
<logger name="com.imutil" level="INFO"/>
|
|
|
|
</configuration>
|