8000 added getLevel to retrieve custom level, added additional coverage tests · JJediny/log4js-node@76d3438 · GitHub
[go: up one dir, main page]

Skip to content

Commit 76d3438

Browse files
committed
added getLevel to retrieve custom level, added additional coverage tests
1 parent ccd94fa commit 76d3438

File tree

2 files changed

+57
-21
lines changed

2 files changed

+57
-21
lines changed

lib/log4js.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,15 @@ levels.forName = function(levelStr, levelVal) {
8080
return level;
8181
};
8282

83+
levels.getLevel = function(levelStr) {
84+
var level;
85+
if (typeof levelStr === "string") {
86+
var levelUpper = levelStr.toUpperCase();
87+
level = levels.toLevel(levelStr);
88+
}
89+
return level;
90+
};
91+
8392
function getBufferedLogger(categoryName) {
8493
var base_logger = getLogger(categoryName);
8594
var logger = {};

test/newLevel-test.js

Lines changed: 48 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ var vows = require('vows')
77
, Logger = loggerModule.Logger;
88

99
vows.describe('../lib/logger').addBatch({
10-
'new log level and methods': {
10+
'creating a new log level': {
1111
topic: function () {
1212
log4js.levels.forName("DIAG", 6000);
1313
return new Logger();
@@ -19,61 +19,88 @@ vows.describe('../lib/logger').addBatch({
1919
assert.equal(levels.DIAG.level, 6000);
2020
},
2121

22-
'new log level method is present on logger prototype': function(logger) {
22+
'should create named function on logger prototype': function(logger) {
2323
assert.isFunction(logger.diag);
2424
},
2525

26-
'new log level method isLevelEnabled present on logger prototype': function(logger) {
26+
'should create isLevelEnabled function on logger prototype': function(logger) {
2727
assert.isFunction(logger.isDiagEnabled);
28-
}
28+
},
2929
},
3030

31-
'new log level and method for underscored levels': {
31+
'creating a new log level with underscores': {
3232
topic: function () {
33-
log4js.levels.forName("NEW_LEVEL", 6000);
33+
log4js.levels.forName("NEW_LEVEL_OTHER", 6000);
3434
return new Logger();
3535
},
3636

37-
'should export new log level in levels module': function (logger) {
38-
assert.isDefined(levels.NEW_LEVEL);
39-
assert.equal(levels.NEW_LEVEL.levelStr, "NEW_LEVEL");
40-
assert.equal(levels.NEW_LEVEL.level, 6000);
37+
'should export new log level to levels module': function (logger) {
38+
assert.isDefined(levels.NEW_LEVEL_OTHER);
39+
assert.equal(levels.NEW_LEVEL_OTHER.levelStr, "NEW_LEVEL_OTHER");
40+
assert.equal(levels.NEW_LEVEL_OTHER.level, 6000);
4141
},
4242

43-
'new log level method is present on logger prototype in camel case': function(logger) {
44-
assert.isFunction(logger.newLevel);
43+
'should create named function on logger prototype in camel case': function(logger) {
44+
assert.isFunction(logger.newLevelOther);
4545
},
4646

47-
'new log level method isLevelEnabled present on logger prototype': function(logger) {
48-
assert.isFunction(logger.isNewLevelEnabled);
47+
'should create named isLevelEnabled function on logger prototype in camel case': function(logger) {
48+
assert.isFunction(logger.isNewLevelOtherEnabled);
4949
}
5050
},
5151

52-
'log events contain newly created log level': {
52+
'creating log events containing newly created log level': {
5353
topic: function() {
5454
var events = [],
5555
logger = new Logger();
5656
logger.addListener("log", function (logEvent) { events.push(logEvent); });
5757

5858
logger.log(log4js.levels.forName("LVL1", 6000), "Event 1");
59-
logger.log("LVL1", "Event 2");
60-
logger.lvl1("Event 3");
59+
logger.log(log4js.levels.getLevel("LVL1"), "Event 2");
60+
logger.log("LVL1", "Event 3");
61+
logger.lvl1("Event 4");
6162

6263
logger.setLevel(log4js.levels.forName("LVL2", 7000));
63-
logger.lvl1("Event 4");
64+
logger.lvl1("Event 5");
6465

6566
return events;
6667
},
6768

68-
'events are present with new log level': function(events) {
69+
'should show log events with new log level': function(events) {
6970
assert.equal(events[0].level.toString(), "LVL1");
71+
assert.equal(events[0].data[0], "Event 1");
72+
7073
assert.equal(events[1].level.toString(), "LVL1");
74+
assert.equal(events[1].data[0], "Event 2");
75+
7176
assert.equal(events[2].level.toString(), "LVL1");
77+
assert.equal(events[2].data[0], "Event 3");
78+
79+
assert.equal(events[3].level.toString(), "LVL1");
80+
assert.equal(events[3].data[0], "Event 4");
7281
},
7382

74-
'event should NOT be present if min log level greater than newly created level':
83+
'should not be present if min log level is greater than newly created level':
7584
function(events) {
76-
assert.equal(events.length, 3);
85+
assert.equal(events.length, 4);
86+
}
87+
},
88+
89+
'calling log with an undefined log level': {
90+
topic: function() {
91+
var events = [],
92+
logger = new Logger();
93+
logger.addListener("log", function (logEvent) { events.push(logEvent); });
94+
95+
logger.log("LEVEL_DOES_NEXT_EXIST", "Event 1");
96+
logger.log(log4js.levels.forName("LEVEL_DOES_NEXT_EXIST"), "Event 2");
97+
98+
return events;
99+
},
100+
101+
'should fallback to the default log level (INFO)': function(events) {
102+
assert.equal(events[0].level.toString(), "INFO");
103+
assert.equal(events[1].level.toString(), "INFO");
77104
}
78105
}
79106
}).exportTo(module);

0 commit comments

Comments
 (0)
0