1 | import { Injector, Scope } from 'typed-inject';
|
2 | import { commonTokens } from '@stryker-mutator/api/plugin';
|
3 | import { LoggerFactoryMethod, Logger } from '@stryker-mutator/api/logging';
|
4 | import log4js from 'log4js';
|
5 |
|
6 | export function provideLogger(injector: Injector): LoggerProvider {
|
7 | return injector.provideValue(commonTokens.getLogger, log4js.getLogger).provideFactory(commonTokens.logger, loggerFactory, Scope.Transient);
|
8 | }
|
9 | export type LoggerProvider = Injector<{ [commonTokens.getLogger]: LoggerFactoryMethod; [commonTokens.logger]: Logger }>;
|
10 |
|
11 |
|
12 | function loggerFactory(getLoggerMethod: LoggerFactoryMethod, target: Function | undefined) {
|
13 | return getLoggerMethod(target ? target.name : 'UNKNOWN');
|
14 | }
|
15 | loggerFactory.inject = [commonTokens.getLogger, commonTokens.target] as const;
|