Skip to content

Instantly share code, notes, and snippets.

@geNAZt
Created May 2, 2013 15:54
Show Gist options
  • Save geNAZt/5503194 to your computer and use it in GitHub Desktop.
Save geNAZt/5503194 to your computer and use it in GitHub Desktop.
var fs = require('fs'),
nconf = require('nconf');
function FileWriter(logger, conf, cb) {
"use strict";
var currentFile = conf.get("logger:folder") + "/" + process.pid + ".log",
writeStream = fs.createWriteStream(currentFile),
rotate = 0,
maxSize = 1024 * 1024 * 1024,
checkCount = 0;
function fileWriterListener(line) {
writeStream.write(line + "\n");
if (++checkCount === 10) {
checkCount = 0;
fs.stat(currentFile, function (err, stats) {
if (stats.size > maxSize) {
writeStream.close();
currentFile = conf.get("logger:folder") + "/" + process.pid + "-" + rotate + ".log";
writeStream = fs.createWriteStream(currentFile);
rotate += 1;
}
});
}
}
//Auf Lines reagieren, wenn diese vom Logger kommen
logger.on('newLine', fileWriterListener);
this.destroy = function() {
writeStream.end();
logger.removeListener('newLine', fileWriterListener);
};
cb();
}
module.exports = function (logger, conf, cb) {
"use strict";
return new FileWriter(logger, conf, cb);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment