Skip to content

Commit

Permalink
Merge branch 'set-global-log-level' of https://github.com/RolfKoender…
Browse files Browse the repository at this point in the history
…s/log4js-node into RolfKoenders-set-global-log-level
  • Loading branch information
Gareth Jones committed Jul 12, 2014
2 parents a064786 + 8cf0350 commit 60d2e09
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 12 deletions.
3 changes: 3 additions & 0 deletions lib/log4js.js
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,9 @@ function configureLevels(levels) {
if (levels) {
for (var category in levels) {
if (levels.hasOwnProperty(category)) {
if(category === ALL_CATEGORIES) {
setGlobalLogLevel(levels[category]);
}
getLogger(category).setLevel(levels[category]);
}
}
Expand Down
59 changes: 47 additions & 12 deletions test/global-log-level-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,22 @@ vows.describe('log4js global loglevel').addBatch({
var log4js = require('../lib/log4js');
return log4js;
},

'set global loglevel on creation': function(log4js) {
var log1 = log4js.getLogger('log1');
var level = 'OFF';
if (log1.level.toString() == level) {
level = 'TRACE';
}
assert.notEqual(log1.level.toString(), level);

log4js.setGlobalLogLevel(level);
assert.equal(log1.level.toString(), level);

var log2 = log4js.getLogger('log2');
assert.equal(log2.level.toString(), level);
},

'global change loglevel': function(log4js) {
var log1 = log4js.getLogger('log1');
var log2 = log4js.getLogger('log2');
Expand All @@ -32,7 +32,7 @@ vows.describe('log4js global loglevel').addBatch({
level = 'TRACE';
}
assert.notEqual(log1.level.toString(), level);

log4js.setGlobalLogLevel(level);
assert.equal(log1.level.toString(), level);
assert.equal(log2.level.toString(), level);
Expand All @@ -46,41 +46,76 @@ vows.describe('log4js global loglevel').addBatch({
level = 'TRACE';
}
assert.notEqual(log1.level.toString(), level);

var oldLevel = log1.level.toString();
assert.equal(log2.level.toString(), oldLevel);

log2.setLevel(level);
assert.equal(log1.level.toString(), oldLevel);
assert.equal(log2.level.toString(), level);
assert.notEqual(oldLevel, level);

log2.removeLevel();
assert.equal(log1.level.toString(), oldLevel);
assert.equal(log2.level.toString(), oldLevel);
},

'preload loglevel': function(log4js) {
var log1 = log4js.getLogger('log1');
var level = 'OFF';
if (log1.level.toString() == level) {
level = 'TRACE';
}
assert.notEqual(log1.level.toString(), level);

var oldLevel = log1.level.toString();
log4js.getLogger('log2').setLevel(level);

assert.equal(log1.level.toString(), oldLevel);

// get again same logger but as different variable
var log2 = log4js.getLogger('log2');
assert.equal(log2.level.toString(), level);
assert.notEqual(oldLevel, level);

log2.removeLevel();
assert.equal(log1.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);

3 comments on commit 60d2e09

@sourabhagrawal
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When are you going to push this to npm?

@nomiddlename
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

npm version 0.6.16 - sorry for the delay.

@sourabhagrawal
Copy link

@sourabhagrawal sourabhagrawal commented on 60d2e09 Jul 18, 2014 via email

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.