Backported the old streams. Nasty if statements abound.

This commit is contained in:
Gareth Jones
2013-04-07 14:32:39 +10:00
parent 36c5175a55
commit 9c5dff382e
14 changed files with 783 additions and 205 deletions
+35 -9
View File
@@ -1,10 +1,10 @@
var layouts = require('../layouts')
, path = require('path')
, fs = require('fs')
, streams = require('../streams')
, os = require('os')
, eol = os.EOL || '\n'
, openFiles = [];
, path = require('path')
, fs = require('fs')
, semver = require('semver')
, os = require('os')
, eol = os.EOL || '\n'
, openFiles = [];
//close open files on process exit.
process.on('exit', function() {
@@ -22,7 +22,7 @@ process.on('exit', function() {
* @param numBackups - the number of log files to keep after logSize has been reached (default 5)
*/
function fileAppender (file, layout, logSize, numBackups) {
var bytesWritten = 0;
var logFile;
file = path.normalize(file);
layout = layout || layouts.basicLayout;
numBackups = numBackups === undefined ? 5 : numBackups;
@@ -30,7 +30,9 @@ function fileAppender (file, layout, logSize, numBackups) {
numBackups = numBackups === 0 ? 1 : numBackups;
function openTheStream(file, fileSize, numFiles) {
var stream;
var stream
, streams = require('../streams');
if (fileSize) {
stream = new streams.RollingFileStream(
file,
@@ -46,7 +48,31 @@ function fileAppender (file, layout, logSize, numBackups) {
return stream;
}
var logFile = openTheStream(file, logSize, numBackups);
function openTheOldStyleStream(file, fileSize, numFiles) {
var stream
, streams = require('../old-streams');
if (fileSize) {
stream = new streams.BufferedWriteStream(
new streams.RollingFileStream(
file,
fileSize,
numFiles
)
);
} else {
stream = new streams.BufferedWriteStream(fs.createWriteStream(file, { encoding: "utf8", mode: 0644, flags: 'a' }));
}
stream.on("error", function (err) {
console.error("log4js.fileAppender - Writing to file %s, error happened ", file, err);
});
return stream;
}
if (semver.satisfies(process.version, '>=0.10.0')) {
logFile = openTheStream(file, logSize, numBackups);
} else {
logFile = openTheOldStyleStream(file, logSize, numBackups);
}
// push file to the stack of open handlers
openFiles.push(logFile);