javascript - 如何使用 Winston 3 记录完整的堆栈跟踪?

标签 javascript node.js logging winston

我的记录器设置如下:

const myFormat = printf(info => {
   return `${info.timestamp}: ${info.level}: ${info.message}: ${info.err}`;
 });


 const logger =
   winston.createLogger({
   level: "info",
   format: combine(timestamp(), myFormat),

   transports: [
     new winston.transports.File({
     filename:
      "./logger/error.log",
        level: "error"
    }),
     new winston.transports.File({
       filename:
       "./logger/info.log",
       level: "info"
   })
  ]
})

然后我正在注销一些这样的错误:

logger.error(`GET on /history`, { err });

如何通过错误传输记录错误的完整堆栈跟踪?我尝试传入 err.stack,结果显示为未定义。

谢谢!

最佳答案

对于winston版本3.2.0+,下面会添加stacktrace到日志输出:

import { createLogger, format, transports } from 'winston';

const { combine, timestamp, prettyPrint, colorize, errors,  } = format;


const logger = createLogger({
  format: combine(
    errors({ stack: true }), // <-- use errors format
    colorize(),
    timestamp(),
    prettyPrint()
  ),
  transports: [new transports.Console()],
});  

引用:https://github.com/winstonjs/winston/issues/1338#issuecomment-482784056

关于javascript - 如何使用 Winston 3 记录完整的堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47231677/

相关文章:

Javascript:如何从文本文件的特定部分加载数据?

javascript - 在不更改对象 ID 的情况下更新嵌套对象数据

android - 找不到模块 'umask'

C++ 简单的崩溃日志记录

python - 导入模块时将记录器对象作为参数

javascript - 如何判断用户是否重新加载网页?

javascript - RegEx(在 JavaScript 中查找/替换)- 匹配非字母数字字符但忽略 - 和 +

javascript - 在获取图像大小时绕过异步

javascript - Hapi.js View 看不到本地脚本

java - 将自定义 logging.properties 与 Jersey 一起使用