Skip to content

Commit 67adfb2

Browse files
authored
Make instance logLevel setter able to process string input (#3076)
1 parent 24c1ee9 commit 67adfb2

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

packages/logger/src/logger.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,16 +141,23 @@ export class Logger {
141141
* The log level of the given Logger instance.
142142
*/
143143
private _logLevel = defaultLogLevel;
144+
144145
get logLevel(): LogLevel {
145146
return this._logLevel;
146147
}
148+
147149
set logLevel(val: LogLevel) {
148150
if (!(val in LogLevel)) {
149-
throw new TypeError('Invalid value assigned to `logLevel`');
151+
throw new TypeError(`Invalid value "${val}" assigned to \`logLevel\``);
150152
}
151153
this._logLevel = val;
152154
}
153155

156+
// Workaround for setter/getter having to be the same type.
157+
setLogLevel(val: LogLevel | LogLevelString): void {
158+
this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;
159+
}
160+
154161
/**
155162
* The main (internal) log handler for the Logger instance.
156163
* Can be set to a new function in internal package code but not by user.
@@ -205,9 +212,8 @@ export class Logger {
205212
}
206213

207214
export function setLogLevel(level: LogLevelString | LogLevel): void {
208-
const newLevel = typeof level === 'string' ? levelStringToEnum[level] : level;
209215
instances.forEach(inst => {
210-
inst.logLevel = newLevel;
216+
inst.setLogLevel(level);
211217
});
212218
}
213219

0 commit comments

Comments
 (0)