Skip to content

Commit 4d7ab1c

Browse files
committed
use methodFactory extensions from the rootLogger in child loggers.
1 parent a52c64b commit 4d7ab1c

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

src/logger.ts

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ See the License for the specific language governing permissions and
1515
limitations under the License.
1616
*/
1717

18-
import loglevel from "loglevel";
18+
import loglevel, { LoggingMethod } from "loglevel";
1919

2020
/** Backwards-compatibility hack to expose `log` to applications that might still be relying on it. */
2121
interface LoggerWithLogMethod extends Logger {
@@ -135,7 +135,22 @@ function getPrefixedLogger(prefix?: string): LoggerWithLogMethod {
135135
if (prefixLogger.getChild === undefined) {
136136
// This is a new loglevel Logger which has not been turned into a PrefixedLogger yet.
137137
prefixLogger.prefix = prefix;
138-
prefixLogger.getChild = (childPrefix): Logger => getPrefixedLogger((prefix ?? "") + childPrefix);
138+
prefixLogger.getChild = (childPrefix): Logger => {
139+
const childLogger = getPrefixedLogger((prefix ?? "") + childPrefix) as unknown as loglevel.Logger;
140+
childLogger.methodFactory = (methodName, configLevel, loggerName): LoggingMethod => {
141+
const method = (logger as unknown as loglevel.Logger).methodFactory(
142+
methodName,
143+
configLevel,
144+
loggerName,
145+
);
146+
return (...args): void => {
147+
method.apply(childLogger, args);
148+
};
149+
};
150+
childLogger.setLevel(childLogger.getLevel());
151+
152+
return childLogger as unknown as Logger;
153+
};
139154
prefixLogger.setLevel(loglevel.levels.DEBUG, false);
140155
}
141156

0 commit comments

Comments
 (0)