# 文件职责 日志文件写入器,负责将日志信息持久化到**本地文件系统**,实现**日志分割**和**文件管理**。 # 实现方式 通过 **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**:序号递增机制