winston-daily-rotate-file多传输配置终极指南如何同时记录不同级别的日志文件【免费下载链接】winston-daily-rotate-fileA transport for winston which logs to a rotating file each day.项目地址: https://gitcode.com/gh_mirrors/wi/winston-daily-rotate-file在Node.js应用开发中winston-daily-rotate-file是winston日志库的强大传输插件专门用于按日期轮转日志文件。对于需要精细化日志管理的开发者来说掌握多传输配置技巧至关重要。本文将详细介绍如何配置多个传输实例实现不同日志级别的分离存储让你的应用日志管理更加专业高效。 为什么需要多传输配置在复杂的应用场景中不同级别的日志信息具有不同的重要性。错误日志需要长期保存以便排查问题而普通信息日志可能只需要保留较短时间。使用winston-daily-rotate-file的多传输配置你可以分离错误日志将error级别日志单独存储便于快速定位问题按级别归档不同级别的日志使用不同的轮转策略优化存储空间根据日志重要性设置不同的保留期限提高查询效率特定级别的日志查找更加快捷️ 快速安装与基础配置首先确保你的项目已经安装了winston和winston-daily-rotate-filenpm install winston winston-daily-rotate-file基础的单传输配置可以参考daily-rotate-file.js文件中的实现。但今天我们要重点介绍的是多传输配置的高级用法。 多传输配置实战分离不同级别日志1. 配置错误日志传输错误日志通常需要更长的保留时间我们可以创建一个专门的传输实例const winston require(winston); require(winston-daily-rotate-file); // 错误日志传输 - 保留30天 const errorTransport new winston.transports.DailyRotateFile({ level: error, // 只记录error级别 filename: logs/error-%DATE%.log, datePattern: YYYY-MM-DD, zippedArchive: true, maxSize: 50m, maxFiles: 30d, // 保留30天 createSymlink: true, symlinkName: current-error.log });2. 配置信息日志传输信息日志量较大可以设置较短的保留时间// 信息日志传输 - 保留7天 const infoTransport new winston.transports.DailyRotateFile({ level: info, // 记录info及以上级别 filename: logs/info-%DATE%.log, datePattern: YYYY-MM-DD, zippedArchive: true, maxSize: 100m, maxFiles: 7d, // 只保留7天 createSymlink: true, symlinkName: current-info.log });3. 配置调试日志传输调试日志只在开发环境需要可以设置更激进的清理策略// 调试日志传输 - 仅保留当天 const debugTransport new winston.transports.DailyRotateFile({ level: debug, // 记录debug及以上级别 filename: logs/debug-%DATE%.log, datePattern: YYYY-MM-DD-HH, // 按小时轮转 zippedArchive: false, maxSize: 20m, maxFiles: 1d, // 只保留1天 }); 完整的多传输日志系统将所有传输实例组合起来创建一个功能完整的日志系统const logger winston.createLogger({ level: debug, // 全局最低级别 format: winston.format.combine( winston.format.timestamp(), winston.format.json() ), transports: [ errorTransport, infoTransport, debugTransport, // 控制台输出便于开发调试 new winston.transports.Console({ format: winston.format.simple() }) ] }); // 使用示例 logger.error(这是一个错误信息); logger.warn(这是一个警告信息); logger.info(这是一个普通信息); logger.debug(这是一个调试信息); 事件监听与错误处理winston-daily-rotate-file提供了丰富的事件监听机制在多传输配置中尤为重要// 监听所有传输的错误事件 [errorTransport, infoTransport, debugTransport].forEach(transport { transport.on(error, (error) { console.error(日志传输错误:, error); }); transport.on(rotate, (oldFilename, newFilename) { console.log(日志文件轮转: ${oldFilename} - ${newFilename}); }); transport.on(archive, (zipFilename) { console.log(日志文件已归档: ${zipFilename}); }); }); 高级配置技巧按环境区分配置你可以根据不同的运行环境开发、测试、生产调整日志配置const isProduction process.env.NODE_ENV production; const transports [ errorTransport, infoTransport ]; // 只在非生产环境添加调试日志 if (!isProduction) { transports.push(debugTransport); transports.push(new winston.transports.Console()); } const logger winston.createLogger({ level: isProduction ? info : debug, transports });自定义日志格式通过index.js和daily-rotate-file.js的源码你可以看到传输插件的内部实现。你可以基于此创建自定义的日志格式const customFormat winston.format.printf(({ timestamp, level, message }) { return ${timestamp} [${level.toUpperCase()}]: ${message}; }); const customTransport new winston.transports.DailyRotateFile({ filename: logs/custom-%DATE%.log, format: customFormat, // ... 其他配置 }); 性能优化建议合理设置轮转频率根据日志量调整datePattern避免过于频繁的文件操作启用压缩归档设置zippedArchive为true可以节省磁盘空间监控文件大小通过maxSize限制单个日志文件大小定期清理旧日志使用maxFiles或maxFiles配置自动清理 总结winston-daily-rotate-file的多传输配置为Node.js应用提供了强大的日志管理能力。通过分离不同级别的日志到不同的文件你可以✅ 更高效地管理和查询日志✅ 优化存储空间使用✅ 快速定位和排查问题✅ 根据业务需求定制日志策略记住良好的日志管理是应用可维护性的关键。合理配置你的winston-daily-rotate-file传输实例让日志成为你开发调试的得力助手而不是混乱的文件堆砌。想要了解更多高级用法和配置选项可以参考项目中的test/transport-tests.js文件里面包含了丰富的测试用例和配置示例。【免费下载链接】winston-daily-rotate-fileA transport for winston which logs to a rotating file each day.项目地址: https://gitcode.com/gh_mirrors/wi/winston-daily-rotate-file创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
winston-daily-rotate-file多传输配置终极指南:如何同时记录不同级别的日志文件
发布时间:2026/6/6 15:30:19
winston-daily-rotate-file多传输配置终极指南如何同时记录不同级别的日志文件【免费下载链接】winston-daily-rotate-fileA transport for winston which logs to a rotating file each day.项目地址: https://gitcode.com/gh_mirrors/wi/winston-daily-rotate-file在Node.js应用开发中winston-daily-rotate-file是winston日志库的强大传输插件专门用于按日期轮转日志文件。对于需要精细化日志管理的开发者来说掌握多传输配置技巧至关重要。本文将详细介绍如何配置多个传输实例实现不同日志级别的分离存储让你的应用日志管理更加专业高效。 为什么需要多传输配置在复杂的应用场景中不同级别的日志信息具有不同的重要性。错误日志需要长期保存以便排查问题而普通信息日志可能只需要保留较短时间。使用winston-daily-rotate-file的多传输配置你可以分离错误日志将error级别日志单独存储便于快速定位问题按级别归档不同级别的日志使用不同的轮转策略优化存储空间根据日志重要性设置不同的保留期限提高查询效率特定级别的日志查找更加快捷️ 快速安装与基础配置首先确保你的项目已经安装了winston和winston-daily-rotate-filenpm install winston winston-daily-rotate-file基础的单传输配置可以参考daily-rotate-file.js文件中的实现。但今天我们要重点介绍的是多传输配置的高级用法。 多传输配置实战分离不同级别日志1. 配置错误日志传输错误日志通常需要更长的保留时间我们可以创建一个专门的传输实例const winston require(winston); require(winston-daily-rotate-file); // 错误日志传输 - 保留30天 const errorTransport new winston.transports.DailyRotateFile({ level: error, // 只记录error级别 filename: logs/error-%DATE%.log, datePattern: YYYY-MM-DD, zippedArchive: true, maxSize: 50m, maxFiles: 30d, // 保留30天 createSymlink: true, symlinkName: current-error.log });2. 配置信息日志传输信息日志量较大可以设置较短的保留时间// 信息日志传输 - 保留7天 const infoTransport new winston.transports.DailyRotateFile({ level: info, // 记录info及以上级别 filename: logs/info-%DATE%.log, datePattern: YYYY-MM-DD, zippedArchive: true, maxSize: 100m, maxFiles: 7d, // 只保留7天 createSymlink: true, symlinkName: current-info.log });3. 配置调试日志传输调试日志只在开发环境需要可以设置更激进的清理策略// 调试日志传输 - 仅保留当天 const debugTransport new winston.transports.DailyRotateFile({ level: debug, // 记录debug及以上级别 filename: logs/debug-%DATE%.log, datePattern: YYYY-MM-DD-HH, // 按小时轮转 zippedArchive: false, maxSize: 20m, maxFiles: 1d, // 只保留1天 }); 完整的多传输日志系统将所有传输实例组合起来创建一个功能完整的日志系统const logger winston.createLogger({ level: debug, // 全局最低级别 format: winston.format.combine( winston.format.timestamp(), winston.format.json() ), transports: [ errorTransport, infoTransport, debugTransport, // 控制台输出便于开发调试 new winston.transports.Console({ format: winston.format.simple() }) ] }); // 使用示例 logger.error(这是一个错误信息); logger.warn(这是一个警告信息); logger.info(这是一个普通信息); logger.debug(这是一个调试信息); 事件监听与错误处理winston-daily-rotate-file提供了丰富的事件监听机制在多传输配置中尤为重要// 监听所有传输的错误事件 [errorTransport, infoTransport, debugTransport].forEach(transport { transport.on(error, (error) { console.error(日志传输错误:, error); }); transport.on(rotate, (oldFilename, newFilename) { console.log(日志文件轮转: ${oldFilename} - ${newFilename}); }); transport.on(archive, (zipFilename) { console.log(日志文件已归档: ${zipFilename}); }); }); 高级配置技巧按环境区分配置你可以根据不同的运行环境开发、测试、生产调整日志配置const isProduction process.env.NODE_ENV production; const transports [ errorTransport, infoTransport ]; // 只在非生产环境添加调试日志 if (!isProduction) { transports.push(debugTransport); transports.push(new winston.transports.Console()); } const logger winston.createLogger({ level: isProduction ? info : debug, transports });自定义日志格式通过index.js和daily-rotate-file.js的源码你可以看到传输插件的内部实现。你可以基于此创建自定义的日志格式const customFormat winston.format.printf(({ timestamp, level, message }) { return ${timestamp} [${level.toUpperCase()}]: ${message}; }); const customTransport new winston.transports.DailyRotateFile({ filename: logs/custom-%DATE%.log, format: customFormat, // ... 其他配置 }); 性能优化建议合理设置轮转频率根据日志量调整datePattern避免过于频繁的文件操作启用压缩归档设置zippedArchive为true可以节省磁盘空间监控文件大小通过maxSize限制单个日志文件大小定期清理旧日志使用maxFiles或maxFiles配置自动清理 总结winston-daily-rotate-file的多传输配置为Node.js应用提供了强大的日志管理能力。通过分离不同级别的日志到不同的文件你可以✅ 更高效地管理和查询日志✅ 优化存储空间使用✅ 快速定位和排查问题✅ 根据业务需求定制日志策略记住良好的日志管理是应用可维护性的关键。合理配置你的winston-daily-rotate-file传输实例让日志成为你开发调试的得力助手而不是混乱的文件堆砌。想要了解更多高级用法和配置选项可以参考项目中的test/transport-tests.js文件里面包含了丰富的测试用例和配置示例。【免费下载链接】winston-daily-rotate-fileA transport for winston which logs to a rotating file each day.项目地址: https://gitcode.com/gh_mirrors/wi/winston-daily-rotate-file创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考