log-writer.js.md 1.6 KB

文件职责

日志文件写入器,负责将日志信息持久化到本地文件系统,实现日志分割文件管理

实现方式

通过 Node.js fs模块 进行同步文件操作:

  • 使用 appendFileSync 追加日志内容
  • 动态计算当前可用的日志文件路径
  • 按文件大小和日期自动分割日志文件

实现思路

  1. 文件命名策略:使用日期和序号组合(如 2024-01-01_000.log)
  2. 大小限制:每个日志文件最大2MB,超过后自动创建新文件
  3. 序号递增:同一天的日志文件通过序号区分(_000, _001, ...)
  4. 自动创建:如果文件不存在,自动创建新文件
  5. 格式化输出:每行日志包含时间戳、级别和消息内容

边界

输入边界

  • level: 日志级别字符串(log、warn、error)
  • msg: 日志消息字符串
  • LOG_DIR: 日志目录路径(从 log-path.js 导入)

输出边界

  • 文件写入:追加内容到日志文件
  • 无返回值(同步操作)

职责边界

  • ✅ 负责:日志文件写入、文件分割、文件命名、格式化
  • ❌ 不负责:日志收集、IPC通信、日志级别过滤、日志清理

涉及概念

  • File System (fs):Node.js 文件系统模块
  • Synchronous I/O:同步I/O操作
  • Log Rotation:日志滚动/分割
  • ISO 8601:国际标准时间格式
  • Path Module:Node.js路径处理模块
  • File Stats:文件统计信息
  • String Padding:字符串填充
  • MAX_SIZE:最大文件大小限制
  • Append Mode:追加模式(不覆盖原有内容)
  • Sequential Numbering:序号递增机制