我的记录器设置如下:
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/