lee*_*eew 3 cluster-computing node.js winston
当我在nodejs中使用集群和winston时,日志的maxsize不起作用.所有日志都会记录一个文件,尽管其大小超过了maxsize.在这里看到同样的问题:https: //github.com/flatiron/winston/issues/275
小智 9
显而易见的解决方案是:只让master登录到文件.
var winston = require('winston');
var cluster = require('cluster');
if(cluster.isMaster) {
cluster.setupMaster({ silent: true }); // Keep cluster from automatically grabbing stdin/out/err
for(var i = 0; i < 4; i++) {
cluster.fork();
}
winston.add(winston.transport.File, { filename: 'log.txt' });
cluster.workers.forEach(function(worker, i) {
worker.process.stdout.on('data', function(chunk) {
winston.info('worker ' + i + ': ' + chunk);
});
worker.process.stderr.on('data', function(chunk) {
winston.warn('worker ' + i + ': ' + chunk);
});
});
} else {
// Leave winston alone and only log to stdout/err in the workers
}
Run Code Online (Sandbox Code Playgroud)
然后只有一个进程保留文件描述符,因此您的日志轮换应该照常工作.
| 归档时间: |
|
| 查看次数: |
3872 次 |
| 最近记录: |