## 相关文件 (Relevant Files) - `src/config/logger.config.ts` - Winston日志器配置文件,支持分环境、颜色配置。 - `src/utils/logger.ts` - 基于winston的高性能日志记录器,支持分环境输出、按日期轮转、彩色美化。 - `src/middlewares/logger.ts` - 请求日志中间件,支持请求链路追踪、彩色输出、性能监控。 - `src/demo/logger-demo.ts` - Winston日志器演示脚本,展示各种日志功能。 - `src/middlewares/error-handler.ts` - 全局错误处理中间件,支持分环境详细度、自动错误日志记录、请求追踪。 - `src/utils/response.ts` - 统一响应封装工具函数。 - `src/config/redis.config.ts` - Redis 配置与连接池,支持环境变量和默认值配置。 - `src/utils/redis.ts` - Redis连接工具,提供连接池、健康检查、状态监控等功能。 - `src/middlewares/request-id.ts` - 请求id生成与注入中间件。 - `src/controllers/health.controller.ts` - 健康检查接口。 - `src/tests/logger.test.ts` - 日志中间件单元测试。 - `src/tests/error-handler.test.ts` - 错误处理中间件全面单元测试,覆盖各种错误类型、环境差异、日志记录。 - `src/tests/response.test.ts` - 响应封装工具测试。 - `src/tests/redis.test.ts` - Redis 连接与健康检查全面单元测试,覆盖连接管理、健康检查、基础功能。 - `src/type/error.type.ts` - 自定义业务异常类型定义,包含BusinessError类和常用异常工厂。 - `docs/http-status-codes.md` - HTTP状态码完整指南,包含所有常见状态码、错误处理最佳实践。 ### 备注 (Notes) - 单元测试建议与业务代码分离,统一放在 `src/tests/` 目录。 - 日志文件存放在 `logs/` 目录,按日期轮转,格式:`application-YYYY-MM-DD.log`、`error-YYYY-MM-DD.log`。 - 生产环境按日期分文件存储,错误日志单独文件,winston-daily-rotate-file自动处理文件轮转和清理。 - 开发环境彩色控制台输出,测试环境仅输出 ERROR 级别日志。 - 已完成winston日志系统,支持请求追踪、彩色输出、分环境配置。 ## 任务 (Tasks) - [x] 1.0 设计与实现日志记录器 - [x] 1.1 选型并集成日志库(winston + winston-daily-rotate-file) - [x] 1.2 实现分环境日志输出(dev 彩色控制台,prod 文件存储) - [x] 1.3 日志内容包含请求id、method、url、状态码、耗时、IP - [x] 1.4 日志文件按天分割,支持定时清理 - [x] 1.5 日志中间件单元测试 - [x] 2.0 设计与实现全局错误处理器 - [x] 2.1 支持自定义业务异常类型 - [x] 2.2 dev 环境输出详细堆栈,prod 环境输出友好信息 - [x] 2.3 错误日志自动记录 - [x] 2.4 错误处理中间件单元测试 - [x] 3.0 设计与实现统一响应封装 - [x] 3.1 封装统一响应结构(code/message/data/traceId/耗时) - [x] 3.2 响应封装工具单元测试 - [x] 4.0 集成 Redis - [x] 4.1 编写 Redis 配置与连接池 - [x] 4.2 实现 Redis 健康检查 - [x] 4.3 Redis 相关单元测试 - [x] 5.0 健康检查接口 - [x] 5.1 实现 /health 路由,返回服务与依赖健康状态 - [x] 6.0 配置中心优化 - [x] 6.1 所有配置集中到 config,支持多环境 - [x] 7.0 Swagger 文档完善 - [x] 7.1 增加全局响应示例、错误码说明