add log-system, bug fixed

This commit is contained in:
lzx
2025-11-18 11:10:16 +08:00
parent ac22db02f3
commit 74d9a114c0
13 changed files with 861 additions and 186 deletions

View File

@@ -224,6 +224,52 @@ M2Pool Payment System v2 是一个基于以太坊区块链的**分布式支付
#### 9. Logger (`internal/logger/`)
- **transaction_logger.go**:交易日志记录
- 记录所有交易操作的详细日志
- 记录 RMQ 与 Listen 之间的所有通信消息
- 按地址分文件存储,自动日志轮转和压缩
##### 日志分类
**① 交易日志(按地址分文件)**
- 充值日志:按 `address` 命名文件
- 提现日志:按 `fromAddress` 命名文件
- 支付日志:按 `fromAddress` 命名文件
- ETH 节点日志:`ethnode.log`
**② RMQ ↔ Listen 通信日志(按地址分文件)**
- 充值请求/响应:按 `address` 命名文件
- 提现请求/响应:按 `fromAddress` 命名文件
- 支付请求/响应:按 `fromAddress` 命名文件
- 移除监听请求/响应:按 `address` 命名文件
##### 日志格式
**RMQ ↔ Listen 通信日志格式**`[msg-Type]: time-fromaddress-toaddress-chain-symbol-amount`
- **TopupReq**: `[TopupReq]: 2006-01-02 15:04:05--0xabc...-ETH-USDT-0`
- **WithdrawReq**: `[WithdrawReq]: 2006-01-02 15:04:05-0x123...-0xabc...-ETH-USDT-100.500000`
- **PayReq**: `[PayReq]: 2006-01-02 15:04:05-0x123...-0xabc...-ETH-USDT-50.250000`
- **TopupResp**: `[TopupResp]: 2006-01-02 15:04:05-0xdef...-0xabc...-ETH-USDT-200.000000`
- **WithdrawResp**: `[WithdrawResp]: 2006-01-02 15:04:05-0x123...-0xabc...-ETH-USDT-100.500000`
- **PayResp**: `[PayResp]: 2006-01-02 15:04:05-0x123...-0xabc...-ETH-USDT-50.250000`
##### 日志轮转机制
- 单文件超过 **1MB** 自动压缩为 `.gz` 格式
- 后台异步压缩,不影响性能
- 压缩后的文件名格式:`{address}_{timestamp}.log.gz`
- 自动创建新的日志文件继续写入
##### 日志存储位置
所有日志文件存储在 `logs/` 目录下:
```
logs/
├── 0x123...abc.log # 地址 0x123...abc 的日志
├── 0x456...def.log # 地址 0x456...def 的日志
├── 0x123...abc_20240102_120000.log.gz # 压缩的历史日志
├── ethnode.log # ETH 节点日志
└── ...
```
### 项目结构