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

View File

@@ -1,9 +1,10 @@
var streams = require('../streams'),
layouts = require('../layouts'),
path = require('path'),
os = require('os'),
eol = os.EOL || '\n',
openFiles = [];
var semver = require('semver')
, layouts = require('../layouts')
, path = require('path')
, os = require('os')
, eol = os.EOL || '\n'
, openFiles = []
, streams;
//close open files on process exit.
process.on('exit', function() {
@@ -20,29 +21,36 @@ process.on('exit', function() {
* @layout layout function for log messages - defaults to basicLayout
*/
function appender(filename, pattern, layout) {
layout = layout || layouts.basicLayout;
layout = layout || layouts.basicLayout;
var logFile;
var logFile = new streams.DateRollingFileStream(filename, pattern);
openFiles.push(logFile);
return function(logEvent) {
logFile.write(layout(logEvent) + eol, "utf8");
};
if (semver.satisfies(process.version, '>=0.10.0')) {
streams = require('../streams');
logFile = new streams.DateRollingFileStream(filename, pattern);
} else {
streams = require('../old-streams');
logFile = new streams.BufferedWriteStream(new streams.DateRollingFileStream(filename, pattern));
}
openFiles.push(logFile);
return function(logEvent) {
logFile.write(layout(logEvent) + eol, "utf8");
};
}
function configure(config, options) {
var layout;
var layout;
if (config.layout) {
layout = layouts.layout(config.layout.type, config.layout);
}
if (config.layout) {
layout = layouts.layout(config.layout.type, config.layout);
}
if (options && options.cwd && !config.absolute) {
config.filename = path.join(options.cwd, config.filename);
}
if (options && options.cwd && !config.absolute) {
config.filename = path.join(options.cwd, config.filename);
}
return appender(config.filename, config.pattern, layout);
return appender(config.filename, config.pattern, layout);
}
exports.appender = appender;

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);