Adds subcategories to the appenders and loggers. Adds property "level" at the file appender to limit the levels that a file appender accepts.

Creates a MARK category that always write to the log. That's useful to write things like '---- STARTED ----'.
This commit is contained in:
Luis Malheiro
2014-08-29 16:33:32 +02:00
parent fb072dd70d
commit 6fa998408a
4 changed files with 94 additions and 33 deletions
+21 -7
View File
@@ -6,7 +6,8 @@ var layouts = require('../layouts')
, streams = require('../streams')
, os = require('os')
, eol = os.EOL || '\n'
, openFiles = [];
, openFiles = []
, levels = require('../levels');
//close open files on process exit.
process.on('exit', function() {
@@ -26,7 +27,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) {
function fileAppender (file, layout, logSize, numBackups, level) {
var bytesWritten = 0;
file = path.normalize(file);
layout = layout || layouts.basicLayout;
@@ -60,10 +61,23 @@ function fileAppender (file, layout, logSize, numBackups) {
// push file to the stack of open handlers
openFiles.push(logFile);
return function(loggingEvent) {
logFile.write(layout(loggingEvent) + eol, "utf8");
};
if (level) {
var obj = levels.toLevel(level, levels.TRACE);
return function(loggingEvent) {
if (obj.isLessThanOrEqualTo(loggingEvent.level))
logFile.write(layout(loggingEvent) + eol, "utf8");
};
} else {
return function(loggingEvent) {
logFile.write(layout(loggingEvent) + eol, "utf8");
};
}
}
function configure(config, options) {
@@ -76,7 +90,7 @@ function configure(config, options) {
config.filename = path.join(options.cwd, config.filename);
}
return fileAppender(config.filename, layout, config.maxLogSize, config.backups);
return fileAppender(config.filename, layout, config.maxLogSize, config.backups, config.level);
}
function shutdown(cb) {