1.0 KiB
1.0 KiB
Module Logging — Delta
MODIFIED Requirements
Requirement: 禁止全局 logger
系统 SHALL 禁止在业务代码中使用全局 logger,并通过 lint 工具强制执行。
Scenario: 移除 zap.L() 调用
- WHEN 重构现有代码
- THEN SHALL 移除所有
zap.L()调用 - THEN SHALL 通过构造函数注入 logger
- THEN 允许仅在测试代码中使用
zap.L()或zap.NewNop()
Scenario: 移除 zap.L() fallback
- WHEN 构造函数 logger 参数为 nil
- THEN SHALL NOT 使用
zap.L()作为默认值 - THEN 调用方 SHALL 必须传入有效的 logger
Scenario: lint 自动拦截 zap.L()
- WHEN 正式代码中新增
zap.L()调用 - THEN forbidigo SHALL 检测并报错
- THEN git commit SHALL 被拒绝
Scenario: 禁止 fmt/os.Stderr 直接输出
- WHEN 正式代码中使用 fmt.Print*、fmt.Fprintf(os.Stderr, ...) 等直接输出
- THEN forbidigo SHALL 检测并报错
- THEN SHALL 使用注入的 zap logger 替代