文件职责
日志文件写入器,负责将日志信息持久化到本地文件系统,实现日志分割和文件管理。
实现方式
通过 Node.js fs模块 进行同步文件操作:
- 使用 appendFileSync 追加日志内容
- 动态计算当前可用的日志文件路径
- 按文件大小和日期自动分割日志文件
实现思路
- 文件命名策略:使用日期和序号组合(如 2024-01-01_000.log)
- 大小限制:每个日志文件最大2MB,超过后自动创建新文件
- 序号递增:同一天的日志文件通过序号区分(_000, _001, ...)
- 自动创建:如果文件不存在,自动创建新文件
- 格式化输出:每行日志包含时间戳、级别和消息内容
边界
输入边界
- 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:序号递增机制