如何解决将winston设置为在express上记录url路径
我是第一次设置Winston记录器
const { createLogger,format,transports } = require('winston');
const logLevels = { error: 0,warn: 1,info: 2,verbose: 3,debug: 4,silly: 5 };
const logger = createLogger({
level: logLevels[process.env.LOG_LEVEL] !== undefined ? process.env.LOG_LEVEL : 'info',format: format.combine(
format.colorize(),format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),format.simple(),format.printf(context => {
const msgstr = JSON.stringify(context.message,null,null)
console.log(context);
return `[${context.level}] [${context.timestamp}] ${msgstr}`;
}),),transports: [new transports.Console()]
});
export default logger
不确定这样做是否正确,但是当我记录错误时,我看不到上下文对象内的路径。
我在应用程序结尾处捕获了错误
app.use((err,req,res,next) => {
logger.error(err)
if (res.headersSent) {
return next(err)
}
res.status(500).send({ error: err })
});
任何帮助都会很棒,谢谢!
解决方法
您应该在对错误记录器的调用中添加堆栈跟踪:
{{1}}
我在下面的堆栈跟踪的前6行中添加了具体的错误类。当我使用%s语法时,您需要splat设置,因此也许使用类似以下记录器:
{{1}}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。