Merge branch 'RolfKoenders-set-global-log-level'

This commit is contained in:
Gareth Jones
2014-07-12 17:09:30 +10:00
2 changed files with 50 additions and 12 deletions

View File

@@ -174,6 +174,9 @@ function configureLevels(levels) {
if (levels) { if (levels) {
for (var category in levels) { for (var category in levels) {
if (levels.hasOwnProperty(category)) { if (levels.hasOwnProperty(category)) {
if(category === ALL_CATEGORIES) {
setGlobalLogLevel(levels[category]);
}
getLogger(category).setLevel(levels[category]); getLogger(category).setLevel(levels[category]);
} }
} }

View File

@@ -8,7 +8,7 @@ vows.describe('log4js global loglevel').addBatch({
var log4js = require('../lib/log4js'); var log4js = require('../lib/log4js');
return log4js; return log4js;
}, },
'set global loglevel on creation': function(log4js) { 'set global loglevel on creation': function(log4js) {
var log1 = log4js.getLogger('log1'); var log1 = log4js.getLogger('log1');
var level = 'OFF'; var level = 'OFF';
@@ -16,14 +16,14 @@ vows.describe('log4js global loglevel').addBatch({
level = 'TRACE'; level = 'TRACE';
} }
assert.notEqual(log1.level.toString(), level); assert.notEqual(log1.level.toString(), level);
log4js.setGlobalLogLevel(level); log4js.setGlobalLogLevel(level);
assert.equal(log1.level.toString(), level); assert.equal(log1.level.toString(), level);
var log2 = log4js.getLogger('log2'); var log2 = log4js.getLogger('log2');
assert.equal(log2.level.toString(), level); assert.equal(log2.level.toString(), level);
}, },
'global change loglevel': function(log4js) { 'global change loglevel': function(log4js) {
var log1 = log4js.getLogger('log1'); var log1 = log4js.getLogger('log1');
var log2 = log4js.getLogger('log2'); var log2 = log4js.getLogger('log2');
@@ -32,7 +32,7 @@ vows.describe('log4js global loglevel').addBatch({
level = 'TRACE'; level = 'TRACE';
} }
assert.notEqual(log1.level.toString(), level); assert.notEqual(log1.level.toString(), level);
log4js.setGlobalLogLevel(level); log4js.setGlobalLogLevel(level);
assert.equal(log1.level.toString(), level); assert.equal(log1.level.toString(), level);
assert.equal(log2.level.toString(), level); assert.equal(log2.level.toString(), level);
@@ -46,20 +46,20 @@ vows.describe('log4js global loglevel').addBatch({
level = 'TRACE'; level = 'TRACE';
} }
assert.notEqual(log1.level.toString(), level); assert.notEqual(log1.level.toString(), level);
var oldLevel = log1.level.toString(); var oldLevel = log1.level.toString();
assert.equal(log2.level.toString(), oldLevel); assert.equal(log2.level.toString(), oldLevel);
log2.setLevel(level); log2.setLevel(level);
assert.equal(log1.level.toString(), oldLevel); assert.equal(log1.level.toString(), oldLevel);
assert.equal(log2.level.toString(), level); assert.equal(log2.level.toString(), level);
assert.notEqual(oldLevel, level); assert.notEqual(oldLevel, level);
log2.removeLevel(); log2.removeLevel();
assert.equal(log1.level.toString(), oldLevel); assert.equal(log1.level.toString(), oldLevel);
assert.equal(log2.level.toString(), oldLevel); assert.equal(log2.level.toString(), oldLevel);
}, },
'preload loglevel': function(log4js) { 'preload loglevel': function(log4js) {
var log1 = log4js.getLogger('log1'); var log1 = log4js.getLogger('log1');
var level = 'OFF'; var level = 'OFF';
@@ -67,20 +67,55 @@ vows.describe('log4js global loglevel').addBatch({
level = 'TRACE'; level = 'TRACE';
} }
assert.notEqual(log1.level.toString(), level); assert.notEqual(log1.level.toString(), level);
var oldLevel = log1.level.toString(); var oldLevel = log1.level.toString();
log4js.getLogger('log2').setLevel(level); log4js.getLogger('log2').setLevel(level);
assert.equal(log1.level.toString(), oldLevel); assert.equal(log1.level.toString(), oldLevel);
// get again same logger but as different variable // get again same logger but as different variable
var log2 = log4js.getLogger('log2'); var log2 = log4js.getLogger('log2');
assert.equal(log2.level.toString(), level); assert.equal(log2.level.toString(), level);
assert.notEqual(oldLevel, level); assert.notEqual(oldLevel, level);
log2.removeLevel(); log2.removeLevel();
assert.equal(log1.level.toString(), oldLevel); assert.equal(log1.level.toString(), oldLevel);
assert.equal(log2.level.toString(), oldLevel); assert.equal(log2.level.toString(), oldLevel);
},
'set level on all categories': function(log4js) {
// Get 2 loggers
var log1 = log4js.getLogger('log1');
var log2 = log4js.getLogger('log2');
// First a test with 2 categories with different levels
var config = {
'levels': {
'log1': 'ERROR',
'log2': 'WARN'
}
};
log4js.configure(config);
// Check if the levels are set correctly
assert.equal('ERROR', log1.level.toString());
assert.equal('WARN', log2.level.toString());
log1.removeLevel();
log2.removeLevel();
// Almost identical test, but now we set
// level on all categories
var config2 = {
'levels': {
'[all]': 'DEBUG'
}
};
log4js.configure(config2);
// Check if the loggers got the DEBUG level
assert.equal('DEBUG', log1.level.toString());
assert.equal('DEBUG', log2.level.toString());
} }
} }
}).export(module); }).export(module);