|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
"use strict";
|
|
|
|
|
var layouts = require('../layouts')
|
|
|
|
|
, async = require('async')
|
|
|
|
|
, path = require('path')
|
|
|
|
|
, fs = require('fs')
|
|
|
|
|
, streams = require('../streams')
|
|
|
|
@ -61,7 +62,12 @@ function fileAppender (file, layout, logSize, numBackups) {
|
|
|
|
|
openFiles.push(logFile);
|
|
|
|
|
|
|
|
|
|
return function(loggingEvent) {
|
|
|
|
|
logFile.write(layout(loggingEvent) + eol, "utf8");
|
|
|
|
|
logFile.write(layout(loggingEvent) + eol, "utf8",
|
|
|
|
|
function() {
|
|
|
|
|
// just here to keep the event loop
|
|
|
|
|
// open - doesn't work.
|
|
|
|
|
return;
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -78,5 +84,16 @@ function configure(config, options) {
|
|
|
|
|
return fileAppender(config.filename, layout, config.maxLogSize, config.backups);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function shutdown(cb) {
|
|
|
|
|
async.forEach(openFiles, function(file, done) {
|
|
|
|
|
if (!file.write(eol, "utf-8")) {
|
|
|
|
|
file.once('drain', function() {
|
|
|
|
|
file.end(done);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}, cb);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
exports.appender = fileAppender;
|
|
|
|
|
exports.configure = configure;
|
|
|
|
|
exports.shutdown = shutdown;
|
|
|
|
|