working, except for tests which expect log levels to persist across getLogger calls
This commit is contained in:
parent
3b55aefe6f
commit
5bd7ce3ab9
@ -43,7 +43,7 @@
|
|||||||
* @static
|
* @static
|
||||||
* Website: http://log4js.berlios.de
|
* Website: http://log4js.berlios.de
|
||||||
*/
|
*/
|
||||||
var debug = require('./debug')('log4js-core')
|
var debug = require('./debug')('core')
|
||||||
, fs = require('fs')
|
, fs = require('fs')
|
||||||
, path = require('path')
|
, path = require('path')
|
||||||
, util = require('util')
|
, util = require('util')
|
||||||
@ -77,7 +77,7 @@ function getLogger (categoryName) {
|
|||||||
|
|
||||||
debug("getLogger(" + categoryName + ")");
|
debug("getLogger(" + categoryName + ")");
|
||||||
|
|
||||||
return new Logger(categoryName, levels.toLevel(categoryLevels[categoryName]) || null);
|
return new Logger(categoryName, categoryLevels[categoryName] || null, dispatch);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -151,18 +151,22 @@ function getDefaultLogger () {
|
|||||||
* This would be a good place to implement category hierarchies/wildcards, etc
|
* This would be a good place to implement category hierarchies/wildcards, etc
|
||||||
*/
|
*/
|
||||||
function dispatch(event) {
|
function dispatch(event) {
|
||||||
debug("event is " + util.inspect(event));
|
debug("event is " + util.inspect(event));
|
||||||
if (appenders[event.category]) {
|
debug("appenders is " + util.inspect(appenders));
|
||||||
dispatchToCategory(event.category, event);
|
if (appenders[event.categoryName]) {
|
||||||
|
debug("appender defined for " + event.categoryName);
|
||||||
|
dispatchToCategory(event.categoryName, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (appenders[ALL_CATEGORIES]) {
|
if (appenders[ALL_CATEGORIES]) {
|
||||||
|
debug("appender defined for " + ALL_CATEGORIES);
|
||||||
dispatchToCategory(ALL_CATEGORIES, event);
|
dispatchToCategory(ALL_CATEGORIES, event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function dispatchToCategory(category, event) {
|
function dispatchToCategory(category, event) {
|
||||||
appenders[category].forEach(function(appender) {
|
appenders[category].forEach(function(appender) {
|
||||||
|
debug("Sending " + util.inspect(event) + " to appender " + appender);
|
||||||
appender(event);
|
appender(event);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
var levels = require('./levels')
|
var debug = require('./debug')('logger')
|
||||||
|
, levels = require('./levels')
|
||||||
, util = require('util')
|
, util = require('util')
|
||||||
, log4js = require('./log4js')
|
|
||||||
, DEFAULT_CATEGORY = '[default]';
|
, DEFAULT_CATEGORY = '[default]';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -26,17 +26,20 @@ function LoggingEvent (categoryName, level, data) {
|
|||||||
* @param name name of category to log to
|
* @param name name of category to log to
|
||||||
* @author Stephan Strittmatter
|
* @author Stephan Strittmatter
|
||||||
*/
|
*/
|
||||||
function Logger (name, level) {
|
function Logger (name, level, dispatch) {
|
||||||
this.category = name || DEFAULT_CATEGORY;
|
this.category = name || DEFAULT_CATEGORY;
|
||||||
|
|
||||||
if (level) {
|
if (level) {
|
||||||
this.setLevel(level);
|
this.setLevel(level);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.dispatch = dispatch;
|
||||||
}
|
}
|
||||||
Logger.DEFAULT_CATEGORY = DEFAULT_CATEGORY;
|
Logger.DEFAULT_CATEGORY = DEFAULT_CATEGORY;
|
||||||
Logger.prototype.level = levels.TRACE;
|
Logger.prototype.level = levels.TRACE;
|
||||||
|
|
||||||
Logger.prototype.setLevel = function(level) {
|
Logger.prototype.setLevel = function(level) {
|
||||||
|
debug("setting level to " + level);
|
||||||
this.level = levels.toLevel(level, this.level || levels.TRACE);
|
this.level = levels.toLevel(level, this.level || levels.TRACE);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -48,8 +51,8 @@ Logger.prototype.log = function() {
|
|||||||
var args = Array.prototype.slice.call(arguments)
|
var args = Array.prototype.slice.call(arguments)
|
||||||
, logLevel = args.shift()
|
, logLevel = args.shift()
|
||||||
, loggingEvent = new LoggingEvent(this.category, logLevel, args);
|
, loggingEvent = new LoggingEvent(this.category, logLevel, args);
|
||||||
|
debug("Logging event " + loggingEvent + " to dispatch = " + util.inspect(this.dispatch));
|
||||||
log4js.dispatch(loggingEvent);
|
this.dispatch(loggingEvent);
|
||||||
};
|
};
|
||||||
|
|
||||||
Logger.prototype.isLevelEnabled = function(otherLevel) {
|
Logger.prototype.isLevelEnabled = function(otherLevel) {
|
||||||
|
@ -57,16 +57,13 @@ vows.describe('../lib/logger').addBatch({
|
|||||||
},
|
},
|
||||||
|
|
||||||
'log': {
|
'log': {
|
||||||
topic: new Logger('testing'),
|
topic: function() {
|
||||||
'should send log events to log4js': function(logger) {
|
var evt
|
||||||
var evt, original = log4js.dispatch;
|
, logger = new Logger('testing', null, function(event) { evt = event; });
|
||||||
log4js.dispatch = function(event) {
|
|
||||||
evt = event;
|
|
||||||
};
|
|
||||||
|
|
||||||
logger.log(levels.DEBUG, "cheese");
|
logger.log(levels.DEBUG, "cheese");
|
||||||
log4js.dispatch = original;
|
return evt;
|
||||||
|
},
|
||||||
|
'should send log events to log4js': function(evt) {
|
||||||
assert.equal(evt.categoryName, 'testing');
|
assert.equal(evt.categoryName, 'testing');
|
||||||
assert.equal(evt.level, levels.DEBUG);
|
assert.equal(evt.level, levels.DEBUG);
|
||||||
assert.equal(evt.data[0], "cheese");
|
assert.equal(evt.data[0], "cheese");
|
||||||
|
@ -54,6 +54,7 @@ vows.describe('log4js').addBatch({
|
|||||||
'log events' : {
|
'log events' : {
|
||||||
topic: function(logger) {
|
topic: function(logger) {
|
||||||
var events = [];
|
var events = [];
|
||||||
|
var log4js = require('../lib/log4js');
|
||||||
log4js.addAppender(function (logEvent) { events.push(logEvent); }, "tests");
|
log4js.addAppender(function (logEvent) { events.push(logEvent); }, "tests");
|
||||||
logger.debug("Debug event");
|
logger.debug("Debug event");
|
||||||
logger.trace("Trace event 1");
|
logger.trace("Trace event 1");
|
||||||
|
Loading…
Reference in New Issue
Block a user