You need to enable JavaScript to run this app. Node.js中Winston如何同时实现控制台日志输出与文件日志记录
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 22:15:04