Skip to content

fix duplicated logs caused by importing seafobj - #908

Merged
freeplant merged 1 commit into
masterfrom
fix-duplicated-logs
Aug 26, 2026
Merged

freeplant merged 1 commit into
masterfrom
fix-duplicated-logs

Conversation

@AlexCXC

@AlexCXC AlexCXC commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@seafile-dev seafile-dev left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: Comment

Warnings:

  • 日志去重的根因处理正确:启动时会移除依赖(如 seafobj)预先注册到 root logger 的 handler,并仅保留 dtable-events 的 handler。当前缺少覆盖该回归场景的自动化测试,详见行内评论。
    Suggested fix: 增加模拟外部 root handler 的测试,并断言同一日志仅写入一次。

Comment thread dtable_events/app/log.py
root_logger = logging.getLogger()

# Replace handlers installed by imported dependencies such as seafobj.
for handler in root_logger.handlers[:]:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Warning] 缺少重复日志回归测试

Why this matters:
此处通过清理依赖(如 seafobj)预先注册到 root logger 的 handler 来消除重复输出,但当前没有测试覆盖该启动顺序。后续调整日志初始化或升级依赖时,重复日志可能无提示地回归。

Suggested fix: 新增测试:预先向 root logger 注册一个外部 StreamHandler,执行 LogConfigurator 后断言旧 handler 已移除,并验证一条日志在目标输出中只出现一次。

@freeplant
freeplant merged commit 2f2b3bf into master Aug 26, 2026
1 check passed
@freeplant
freeplant deleted the fix-duplicated-logs branch August 26, 2026 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants