node.js - 为什么 Winston 不将错误记录到文件中?
问题描述
我是 Winston 的新手,当代码出现错误时,它会记录到控制台而不是日志文件。信息正确记录到另一个文件,但错误不会。
这是我的 logger.js 文件:
const winston = require('winston')
let logger
module.exports.init = () => {
logger = winston.createLogger({
level: 'info',
format: winston.format.simple(),
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: './logs/error.log', level: 'error' }),
new winston.transports.File({ filename: './logs/info.log' })
]
})
process.on('uncaughtException', ex => {
logger.error(ex.message)
process.exit(1)
})
process.on('unhandledRejection', ex => {
logger.error(ex.message)
process.exit(1)
})
}
module.exports.use = () => logger
我在这里使用了代码,但它不起作用。任何帮助将非常感激。
解决方案
我怀疑您的进程在有机会写入日志之前已经退出。我建议等到所有消息都记录下来后再退出,请参阅等待日志写入winston
process.on('uncaughtException', ex => {
logger.error(ex.message)
logger.on('finish', () => {
process.exit(1);
});
})
process.on('unhandledRejection', reason => {
logger.error("unhandledRejection: " + reason)
logger.on('finish', () => {
process.exit(1);
});
})
推荐阅读
- swift - Swift中以下声明之间的意义是什么
- bash - 如何修复 sed:sc 中没有以前的正则表达式错误
- angular - ec2 构建框中的 Ng 构建问题,但在本地没有
- redis - 恢复 5gb 转储文件后 redis-server 连接问题
- python - 如何限制一个套接字的连接数?
- xml - 如何从 xsd 中的 xml 定义 xmlns:ns2
- javascript - 如何判断浏览器是否可以打开某种文件类型?
- python - Python azure.storage.filedatalake - InvalidHeaerValue
- node.js - 如何在 SAML POST 中通过 X509 证书
- node.js - 无法将我的猫鼬模型添加到数据库