我将winston logger添加到我的node.js代码中,它过去一直运行到终止。添加记录器后,进程终止。即使我只是需要记录器而不使用它。
我的logger.js是:
var winston = require ('winston'),
path = require ('path');
var DailyRotateFile = require('winston-daily-rotate-file');
var logger = new (winston.Logger)({
transports: [
new DailyRotateFile({
name: 'dropped-key',
datePattern: '.yyyy-MM-ddTHH',
filename: path.join(__dirname, "droppedKeyLog", "log_file.log"),
level: 'silly'
}),
new DailyRotateFile({
name: 'errorLogger',
datePattern: '.yyyy-MM-ddTHH',
filename: path.join(__dirname, "errorLog", "log_file.log"),
level: 'error'
}),
new DailyRotateFile({
name: 'debug-file',
datePattern: '.yyyy-MM-ddTHH',
filename: path.join(__dirname, "debugLog", "log_file.log"),
level: 'debug'
}),
new (winston.transports.Console)({ level: 'debug' })
],
exceptionHandlers: [
new DailyRotateFile({
name: 'exception-file',
filename: path.join(__dirname, "exceptionLog", "log_file.log"),
datePattern: '.yyyy-MM-ddTHH'
})
]
});
logger.exitOnError = false;
module.exports = {
debugLogger : logger.loggers.get('debugLogger'),
keyLogger : logger.loggers.get('dropped-key')
};我需要知道为什么会发生这种情况,以及我如何解决这个问题。
发布于 2016-03-08 15:10:49
我假设在做完npm install winston-daily-rotate-file --save之后
var DailyRotateFile = require('winston-daily-rotate-file');在……里面
module.exports = {
debugLogger : logger.loggers.get('debugLogger'),
keyLogger : logger.loggers.get('dropped-key')
};您写入的调试记录器传输模块的名称不正确。它将是debug-file。
此外,您还从logger.loggers获取了这些内容。它将来自logger.transports。
相应地,代码将是:
module.exports = {
debugLogger : logger.transports['debug-file'],
keyLogger : logger.transports['dropped-key']
};您的节点卡在module.exports部件中。替换它,它将运行...
发布于 2016-03-23 01:46:00
要在单独的记录器/文件中使用多个传输,您可以使用类别。
检查https://github.com/winstonjs/winston#working-with-multiple-loggers-in-winston
winston.loggers.add('cat-dropped',{
transports:[
new DailyRotateFile({
name: 'dropped-key',
datePattern: '.yyyy-MM-ddTHH',
filename: path.join(__dirname, "droppedKeyLog", "log_file.log"),
level: 'silly'
})
]
});
winston.loggers.add('cat-debug',{
transports:[
new DailyRotateFile({
name: 'debug-file',
datePattern: '.yyyy-MM-ddTHH',
filename: path.join(__dirname, "debugLog", "log_file.log"),
level: 'debug'
})
]
});
winston.handleExceptions(
new DailyRotateFile({
name: 'exception-file',
filename: path.join(__dirname, "exceptionLog", "log_file.log"),
datePattern: '.yyyy-MM-ddTHH'
}));在此之后,您可以获得记录器。
var droppedLogger = winston.loggers.get('cat-dropped');
var debugLogger = winston.loggers.get('cat-debug');
droppedLogger.info('');
debugLogger.debug('');如果仍未创建日志文件,请检查filename的路径,文件夹日志应已创建
https://stackoverflow.com/questions/35858279
复制相似问题