我希望使用log4js记录try构造中的错误。我有下一个代码:
let log4js = require('log4js')
log4js.configure({
appenders: {
asterisk: {type: 'file', filename: 'filename'},
out: {type: 'stdout'},
},
categories: {default: {appenders: ['asterisk', 'out'], level: 'all'}}
})
const logger = log4js.getLogger('asterisk')
async function myFunc() {
try {
let tmp = await someFunc()
}
catch (err) {
logger.error(err)
process.exit(1)
}
}
myFunc()当发生错误时,我在控制台中看到它,但它没有写入文件。如果我在try..catch块之外使用记录器,那么一切都正常。有什么问题吗?
发布于 2022-03-23 09:20:35
正如我在GitHub上所建议的,问题在process.exit中--这会导致节点在logger.error调用(在幕后是异步的)写入文件之前退出。正确的代码将如下所示:
logger.error(err)
logger.shutdown(() => process.exit(1))而且效果很好。
https://stackoverflow.com/questions/71568889
复制相似问题