1
0
Files
nex/openspec/changes/backend-code-lint/specs/module-logging/spec.md

1.0 KiB
Raw Blame History

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 替代