Skip to content

fix: 修复日志重复创建导致句柄过多的问题#842

Merged
Sunrisea merged 2 commits intonacos-group:masterfrom
Sunrisea:master-fix-log
Sep 24, 2025
Merged

fix: 修复日志重复创建导致句柄过多的问题#842
Sunrisea merged 2 commits intonacos-group:masterfrom
Sunrisea:master-fix-log

Conversation

@Sunrisea
Copy link
Member

@Sunrisea Sunrisea commented Sep 2, 2025

No description provided.

@lingma-agents
Copy link

lingma-agents bot commented Sep 2, 2025

修复日志重复创建导致句柄过多的问题

变更概述
  • 问题修复
    • 修复了因重复初始化日志导致的文件句柄泄露问题
    • InitLogger 方法中增加判空逻辑,避免重复创建 Logger 实例
    • NacosLogger 添加 Close 方法以支持资源释放
    • SetLogger 方法中增加对旧 Logger 实例的关闭逻辑,防止资源泄露
  • 重构
    • NacosLogger 结构体嵌入 *zap.SugaredLogger,简化内部实现
    • 增加 Close 接口定义,使 Logger 具备统一的资源释放能力
变更文件
文件路径 变更说明
common/logger/logger.go 修复日志重复创建问题,增加资源释放逻辑,避免句柄泄露。
时序图
sequenceDiagram
    participant App
    participant LoggerModule
    App->>LoggerModule: InitLogger(config)
    LoggerModule->>LoggerModule: 检查logger是否已存在
    alt logger已存在
        LoggerModule-->>App: 直接返回,不重复初始化
    else logger不存在
        LoggerModule->>LoggerModule: 创建新的NacosLogger
        LoggerModule-->>App: 返回新logger
    end
    App->>LoggerModule: SetLogger(newLogger)
    LoggerModule->>LoggerModule: 检查并关闭旧logger
    LoggerModule->>LoggerModule: 替换为新logger
Loading

💡 小贴士

与 lingma-agents 交流的方式

📜 直接回复评论
直接回复本条评论,lingma-agents 将自动处理您的请求。例如:

  • 在当前代码中添加详细的注释说明。

  • 请详细介绍一下你说的 LRU 改造方案,并使用伪代码加以说明。

📜 在代码行处标记
在文件的特定位置创建评论并 @lingma-agents。例如:

  • @lingma-agents 分析这个方法的性能瓶颈并提供优化建议。

  • @lingma-agents 对这个方法生成优化代码。

📜 在讨论中提问
在任何讨论中 @lingma-agents 来获取帮助。例如:

  • @lingma-agents 请总结上述讨论并提出解决方案。

  • @lingma-agents 请根据讨论内容生成优化代码。

@Sunrisea Sunrisea merged commit e95da2f into nacos-group:master Sep 24, 2025
2 checks passed
@hongweipeng
Copy link
Contributor

有问题,日志配置不生效了

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.

2 participants