Node.js中Winston如何同时实现控制台日志输出与文件日志记录
实现方法
Winston 支持同时挂载多个传输器,你只需要额外新增一个 Console 传输器,就能让日志同时写入文件和打印到控制台。
修改后的代码如下:
const winston = require('winston'); // 原有文件传输器 winston.add(new winston.transports.File({ filename: 'logfile.log' })); // 新增控制台传输器 winston.add(new winston.transports.Console()); const port = process.env.PORT || 3000; app.listen(port, ()=>{ winston.info(`Listening to port ${port}....`); });
如果你需要自定义控制台的输出样式,比如添加时间戳、彩色打印,可以给 Console 传输器增加格式配置,示例如下:
winston.add(new winston.transports.Console({ format: winston.format.combine( winston.format.colorize(), winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston.format.printf(({ timestamp, level, message }) => { return `[${timestamp}] ${level}: ${message}`; }) ) }));
以上配置适配目前主流的 Winston 3.x 版本
内容的提问来源于stack exchange,提问作者A. Hasan
相关产品推荐
相关产品推荐

