From 94c7d4a1dacfc1aefd977ef971f98cc52508620e Mon Sep 17 00:00:00 2001 From: Tiara Rodney Date: Sat, 14 Mar 2026 00:23:09 +0100 Subject: [PATCH] feat(manager): set manager on created loggers, fix clear for placeholders getLogger() now assigns manager on newly created loggers so isEnabledFor can check manager.disable. When replacing a Placeholder, _fixupParents is also called to establish the parent chain. clear() skips Placeholder entries that lack a clear method. --- src/manager.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/manager.ts b/src/manager.ts index 1d6828d..ff73f5d 100644 --- a/src/manager.ts +++ b/src/manager.ts @@ -79,8 +79,10 @@ export class Manager { if (existing instanceof Placeholder) { rv = new (this._loggerClass ?? loggerClass)(scope, NOTSET); + rv.manager = this; this.loggers[scope] = rv; this._fixupChildren(existing, rv); + this._fixupParents(rv); } else { rv = existing; @@ -88,6 +90,7 @@ export class Manager { } else { rv = new (this._loggerClass ?? loggerClass)(scope, NOTSET); + rv.manager = this; this.loggers[scope] = rv; this._fixupParents(rv); } @@ -168,7 +171,9 @@ export class Manager { */ public clear() { Object.values(this.loggers).forEach((logger) => { - logger.clear() + if (!(logger instanceof Placeholder)) { + logger.clear(); + } }); } }