Files
dify_market_manager_gui/LOG_OPTIMIZATION.md

4.0 KiB
Raw Permalink Blame History

日志优化说明

问题描述

应用运行时产生了大量重复的日志,特别是:

  1. tokenExpireTimer 每10秒打印3条日志
  2. WebSocket 心跳消息 每30秒打印1条日志
  3. WebSocket 连接成功 打印重复的 emoji 日志

优化内容

1. tokenExpireTimer 日志优化 (src/main/window.js)

  • 优化前每10秒打印3条日志
    tokenExpireTimer 触发
    tokenExpireTimer 触发 对比时间戳
    tokenExpireTimer 触发 对比时间戳差距为:23
    
  • 优化后每60秒打印1条日志
    tokenExpireTimer 检查 - 时间差距: 23分钟
    

2. WebSocket 心跳消息优化 (src/main/utils/WebSocketClient.js)

  • 优化前每30秒打印心跳消息
    收到消息: {"cmd":"heartcheck"}
    
  • 优化后:心跳消息不打印日志,或仅在调试模式下打印

3. WebSocket 连接日志优化

  • 优化前连接成功时打印3行重复的 emoji
    😀😀😀😀 WebSocket connect create ok 😀😀😀😀
    😀😀😀😀 WebSocket connect create ok 😀😀😀😀
    😀😀😀😀 WebSocket connect create ok 😀😀😀😀
    
  • 优化后:简洁的连接成功日志
    WebSocket 连接成功
    WebSocket protocol: [协议]
    

4. 日志级别控制系统 (src/main/utils/logger.js)

  • 添加日志级别控制功能
  • 支持 ERROR、WARN、INFO、DEBUG 四个级别
  • 可以动态调整日志级别

5. 托盘菜单日志设置 (src/main/tray.js)

  • 添加"日志设置"菜单项
  • 提供三个日志级别选项:
    • 详细日志 (DEBUG)
    • 标准日志 (INFO)
    • 仅错误日志 (ERROR)

优化效果

日志数量对比

  • 优化前:每分钟约 18-21 条日志
    • tokenExpireTimer: 6条/分钟
    • WebSocket 心跳: 2条/分钟
    • 其他日志: 10-13条/分钟
  • 优化后:每分钟约 2-5 条日志
    • tokenExpireTimer: 1条/分钟
    • WebSocket 心跳: 0条/分钟
    • 其他日志: 1-4条/分钟

日志文件大小

  • 优化前日志文件增长速度快容易达到几MB
  • 优化后:日志文件增长缓慢,便于管理和查看

使用方法

1. 自动优化

  • 应用启动后自动应用优化设置
  • 无需用户干预

2. 手动调整日志级别

  1. 右键点击托盘图标
  2. 选择"日志设置"
  3. 选择所需的日志级别:
    • 详细日志:显示所有日志,包括调试信息
    • 标准日志:显示重要信息,隐藏调试信息
    • 仅错误日志:只显示错误和警告信息

3. 查看日志

  1. 右键点击托盘图标
  2. 选择"查看日志"
  3. 系统会自动打开日志文件所在目录

日志级别说明

DEBUG (详细日志)

  • 显示所有日志信息
  • 包括调试信息、心跳消息等
  • 适用于开发和调试

INFO (标准日志)

  • 显示重要信息
  • 隐藏调试信息和心跳消息
  • 适用于日常使用

ERROR (仅错误日志)

  • 只显示错误和警告信息
  • 隐藏所有其他日志
  • 适用于生产环境

配置选项

环境变量

# 设置日志级别
NODE_ENV=development  # 开发环境,显示详细日志
NODE_ENV=production   # 生产环境,显示标准日志

代码中设置

import logger from './utils/logger';

// 设置日志级别
logger.setLogLevel('DEBUG');  // 详细日志
logger.setLogLevel('INFO');   // 标准日志
logger.setLogLevel('ERROR');  // 仅错误日志

注意事项

1. 开发环境

  • 建议使用"详细日志"级别
  • 便于调试和问题排查
  • 可以查看所有系统状态

2. 生产环境

  • 建议使用"标准日志"或"仅错误日志"级别
  • 减少日志文件大小
  • 提高应用性能

3. 问题排查

  • 如果遇到问题,可以临时切换到"详细日志"级别
  • 查看完整的系统运行状态
  • 问题解决后可以切换回标准级别

相关文件

  • src/main/window.js - tokenExpireTimer 优化
  • src/main/utils/WebSocketClient.js - WebSocket 日志优化
  • src/main/utils/logger.js - 日志级别控制系统
  • src/main/tray.js - 托盘菜单日志设置