|
|
|
@ -5,6 +5,9 @@ var layouts = require('../layouts')
|
|
|
|
|
, os = require('os')
|
|
|
|
|
, eol = os.EOL || '\n';
|
|
|
|
|
|
|
|
|
|
var openFiles = [];
|
|
|
|
|
var listenerAtttached = false;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* File Appender writing the logs to a text file. Supports rolling of logs by size.
|
|
|
|
|
*
|
|
|
|
@ -42,10 +45,18 @@ function fileAppender (file, layout, logSize, numBackups) {
|
|
|
|
|
|
|
|
|
|
var logFile = openTheStream(file, logSize, numBackups);
|
|
|
|
|
|
|
|
|
|
// push file to the stack of open handlers
|
|
|
|
|
openFiles.push(logFile);
|
|
|
|
|
|
|
|
|
|
//close the file on process exit.
|
|
|
|
|
process.on('exit', function() {
|
|
|
|
|
logFile.end();
|
|
|
|
|
});
|
|
|
|
|
if (!listenerAtttached) {
|
|
|
|
|
listenerAtttached = true;
|
|
|
|
|
process.on('exit', function() {
|
|
|
|
|
openFiles.forEach(function (file) {
|
|
|
|
|
file.end();
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return function(loggingEvent) {
|
|
|
|
|
logFile.write(layout(loggingEvent) + eol, "utf8");
|
|
|
|
|