Skip to content
This repository was archived by the owner on Jun 16, 2026. It is now read-only.
This repository was archived by the owner on Jun 16, 2026. It is now read-only.

logger_init 需要明确单次初始化语义或增加幂等保护 #3

Description

@XiaoPengYouCode

背景

当前 logger_init() 会调用 log::set_boxed_logger 注册全局 logger。Rust log 的全局 logger 每个进程只能设置一次,因此重复调用 logger_init() 会返回初始化失败。

当前风险

  • 函数名看起来像普通 init helper,但实际是进程级一次性初始化。
  • 后续如果测试、工具程序或多个 app 初始化路径重复调用,容易遇到 “logger already initialized” 类错误。

建议

二选一:

  1. logger_init() 文档中明确“每个进程只调用一次”。
  2. 使用 OnceLock / 类似机制实现幂等初始化,并定义重复调用时的返回语义。

验收标准

  • 重复调用行为有明确文档或测试覆盖。
  • 调用方能清楚知道是否需要持有第一次返回的 guard。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions