-
Notifications
You must be signed in to change notification settings - Fork 764
Milestone
Description
The _log function on a logger is declared to take a string-typed level, and that works mostly -- except when using the logLevelFilter: That one assumes the level is an actual Level, and calls isGreaterThanOrEqual() on it.
Defensively one could fix that there:
diff --git a/lib/appenders/logLevelFilter.js b/lib/appenders/logLevelFilter.js
index 7c9012c..253fedd 100644
--- a/lib/appenders/logLevelFilter.js
+++ b/lib/appenders/logLevelFilter.js
@@ -3,7 +3,7 @@ function logLevelFilter(minLevelString, maxLevelString, appender, levels) {
const maxLevel = levels.getLevel(maxLevelString, levels.FATAL);
return (logEvent) => {
const eventLevel = logEvent.level;
- if (eventLevel.isGreaterThanOrEqualTo(minLevel) && eventLevel.isLessThanOrEqualTo(maxLevel)) {
+ if (minLevel.isLessThanOrEqualTo(eventLevel) && maxLevel.isGreaterThanOrEqualTo(eventLevel)) {
appender(logEvent);
}
};But, more generally it seems that maybe _log should explicitly convert the level:
diff --git a/lib/logger.js b/lib/logger.js
index dbfd786..2087b0c 100644
--- a/lib/logger.js
+++ b/lib/logger.js
@@ -82,7 +82,7 @@ class Logger {
debug(`sending log data (${level}) to appenders`);
const loggingEvent = new LoggingEvent(
this.category,
- level,
+ levels.getLevel(level),
data,
this.context,
this.useCallStack && this.parseCallStack(new Error())WDYT, what's the right direction here?
In any case the function type should be changed probably to say _log(level: Level|string, ...), but given #1010 I'm not sure about that one either :)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels