我想在使用nodeJS和Express制作的应用程序中的文件中记录错误。经过几次搜索,我发现Winston是一个很好的库。我找到了this tutorial。
但是当我尝试winston.error('test')
时,消息在控制台中,但是未创建日志文件(因此其中没有任何内容)。我在该网站上进行搜索,发现this question看起来和我的相似,但是我找不到答案和代码之间的区别。
这是我的代码:
// src/config/winston.js
const appRoot = require('app-root-path')
const winston = require('winston')
let options = {
file: {
level: 'error',
filename: `${appRoot}/logs/error.log`,
handleExceptions: true,
json: true,
maxsize: 5242880, // 5MB
maxFiles: 5,
colorize: false,
},
console: {
level: 'debug',
handleExceptions: true,
json: false,
colorize: true,
},
}
let logger = winston.createLogger({
transports: [
new winston.transports.File(options.file),
new winston.transports.Console(options.console)
],
exitOnError: false, // do not exit on handled exceptions
})
logger.stream = {
write: function(message, encoding) {
logger.error(message);
},
}
module.exports = logger
我这样做是为了尝试
// src/api/meal_validation.js
...
winston.error('test')
...