winston查杀节点进程

我添加了winstonlogging器到我的node.js代码,这个代码曾经运行直到被杀死。 在添加logging器之后,该过程就会死亡。 即使我只是要求logging器,而不是使用它。

我的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') }; 

我需要知道为什么会发生这种情况,我该如何解决这个问题。

我假设做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') }; 

您已写入debugginglogging器传输模块的名称不正确。 这将是debug-file

你也从logger.loggers中获取这些。 它将来自logger.transports。

相应的代码将是:

 module.exports = { debugLogger : logger.transports['debug-file'], keyLogger : logger.transports['dropped-key'] }; 

你的节点卡在module.exports部分。 replace这个,它会运行…

要在不同的logging器/文件中使用多个传输,您可以使用类别

检查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' })); 

之后,你可以得到logging器。

 var droppedLogger = winston.loggers.get('cat-dropped'); var debugLogger = winston.loggers.get('cat-debug'); droppedLogger.info(''); debugLogger.debug(''); 

如果还没有创build日志文件,请检查文件名的path,文件夹日志应该已经创build