Skip to content

Commit

Permalink
Merge pull request #1062 from abernh/fix-1042_logger-log--warn-on-inv…
Browse files Browse the repository at this point in the history
…alid-log-level

fix(logger.log): warn on invalid log-level
  • Loading branch information
lamweili committed Jan 7, 2022
2 parents c9d6760 + 76f9142 commit 968fc1c
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
11 changes: 8 additions & 3 deletions lib/logger.js
Expand Up @@ -7,6 +7,7 @@ const categories = require("./categories");
const configuration = require("./configuration");

const stackReg = /at (?:(.+)\s+\()?(?:(.+?):(\d+)(?::(\d+))?|([^)]+))\)?/;

function defaultParseCallStack(data, skipIdx = 4) {
const stacklines = data.stack.split("\n").slice(skipIdx);
const lineMatch = stackReg.exec(stacklines[0]);
Expand Down Expand Up @@ -68,7 +69,11 @@ class Logger {
}

log(level, ...args) {
const logLevel = levels.getLevel(level, levels.INFO);
let logLevel = levels.getLevel(level);
if (!logLevel) {
this._log(levels.WARN, 'log4js:logger.log: invalid value for log-level as first parameter given: ', level);
logLevel = levels.INFO;
}
if (this.isLevelEnabled(logLevel)) {
this._log(logLevel, args);
}
Expand Down Expand Up @@ -116,11 +121,11 @@ function addLevelMethods(target) {
);
const isLevelMethod = levelMethod[0].toUpperCase() + levelMethod.slice(1);

Logger.prototype[`is${isLevelMethod}Enabled`] = function() {
Logger.prototype[`is${isLevelMethod}Enabled`] = function () {
return this.isLevelEnabled(level);
};

Logger.prototype[levelMethod] = function(...args) {
Logger.prototype[levelMethod] = function (...args) {
this.log(level, ...args);
};
}
Expand Down
4 changes: 3 additions & 1 deletion test/tap/newLevel-test.js
Expand Up @@ -237,8 +237,10 @@ test("../../lib/logger", batch => {
logger.log(log4js.levels.getLevel("LEVEL_DOES_NEXT_EXIST"), "Event 2");

const events = recording.replay();
t.equal(events[0].level.toString(), "INFO", "should fall back to INFO");
t.equal(events[0].level.toString(), "WARN", "should log warning");
t.equal(events[1].level.toString(), "INFO", "should fall back to INFO");
t.equal(events[2].level.toString(), "WARN", "should log warning");
t.equal(events[3].level.toString(), "INFO", "should fall back to INFO");
t.end();
});

Expand Down

0 comments on commit 968fc1c

Please sign in to comment.