重构日志与可观测性体系

新增单行文本编码器与结构化 GORM 日志,统一错误记录与请求日志策略,收紧日志文件权限并修复按天切分与压缩,支付回调参数脱敏,生产强制阿里云短信,RequestID 校验防注入,日志文案中文化。
This commit is contained in:
yml2213
2026-07-29 16:19:35 +08:00
parent e75f1a8519
commit 88d74aca7d
64 changed files with 896 additions and 277 deletions
+3 -16
View File
@@ -70,9 +70,6 @@ func (p *AliyunProvider) SendLoginCode(ctx context.Context, phone string, code s
resp, err := p.client.SendSmsWithContext(ctx, req, &dara.RuntimeOptions{})
if err != nil {
if p.log != nil {
p.log.Warn("aliyun sms send failed", zap.String("phone", maskPhone(phone)), zap.Error(err))
}
return fmt.Errorf("aliyun sms send failed: %w", err)
}
if resp == nil || resp.Body == nil {
@@ -82,15 +79,6 @@ func (p *AliyunProvider) SendLoginCode(ctx context.Context, phone string, code s
resultCode := dara.StringValue(resp.Body.Code)
if resultCode != "OK" {
resultMessage := dara.StringValue(resp.Body.Message)
if p.log != nil {
p.log.Warn(
"aliyun sms rejected",
zap.String("phone", maskPhone(phone)),
zap.String("request_id", dara.StringValue(resp.Body.RequestId)),
zap.String("code", resultCode),
zap.String("message", resultMessage),
)
}
providerErr := &ProviderError{Code: resultCode, Message: resultMessage}
if resultCode == "isv.BUSINESS_LIMIT_CONTROL" {
providerErr.Err = ErrProviderRateLimited
@@ -99,11 +87,10 @@ func (p *AliyunProvider) SendLoginCode(ctx context.Context, phone string, code s
}
if p.log != nil {
p.log.Info(
"aliyun sms sent",
p.log.Debug(
"短信发送成功",
zap.String("phone", maskPhone(phone)),
zap.String("request_id", dara.StringValue(resp.Body.RequestId)),
zap.String("biz_id", dara.StringValue(resp.Body.BizId)),
zap.String("provider_request_id", dara.StringValue(resp.Body.RequestId)),
)
}
return nil
+1 -1
View File
@@ -19,7 +19,7 @@ func (p *MockProvider) SendLoginCode(ctx context.Context, phone string, code str
return err
}
if p.log != nil {
p.log.Info("mock sms code generated", zap.String("phone", phone), zap.String("code", code))
p.log.Debug("调试短信验证码", zap.String("phone", maskPhone(phone)), zap.String("code", code))
}
return nil
}