From 40c6ec5868c7838fe4344a563732d0f664cd55c6 Mon Sep 17 00:00:00 2001 From: Livio Brunner Date: Tue, 16 Jul 2024 17:19:10 +0200 Subject: [PATCH] feat: Use nest app logger for Terminus per default It will now use the configured NestJS application logger that has been configured with `app.useLogger(...)` resolves #2547 --- .../logger/default-logger.service.ts | 4 --- lib/health-check/logger/logger.provider.ts | 31 ++++++++++++------- 2 files changed, 20 insertions(+), 15 deletions(-) delete mode 100644 lib/health-check/logger/default-logger.service.ts diff --git a/lib/health-check/logger/default-logger.service.ts b/lib/health-check/logger/default-logger.service.ts deleted file mode 100644 index c207716af..000000000 --- a/lib/health-check/logger/default-logger.service.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Injectable, Scope, ConsoleLogger } from '@nestjs/common'; - -@Injectable({ scope: Scope.TRANSIENT }) -export class DefaultTerminusLogger extends ConsoleLogger {} diff --git a/lib/health-check/logger/logger.provider.ts b/lib/health-check/logger/logger.provider.ts index 61d0c67c1..5c990b243 100644 --- a/lib/health-check/logger/logger.provider.ts +++ b/lib/health-check/logger/logger.provider.ts @@ -1,32 +1,41 @@ -import { type LoggerService, type Provider, type Type } from '@nestjs/common'; -import { DefaultTerminusLogger } from './default-logger.service'; +import { + Logger, + type LoggerService, + type Provider, + type Type, +} from '@nestjs/common'; export const TERMINUS_LOGGER = 'TERMINUS_LOGGER'; +const NOOP_LOGGER = { + // eslint-disable-next-line @typescript-eslint/no-empty-function + log: () => {}, + // eslint-disable-next-line @typescript-eslint/no-empty-function + error: () => {}, + // eslint-disable-next-line @typescript-eslint/no-empty-function + warn: () => {}, +}; + export function getLoggerProvider( logger?: Type | boolean, ): Provider { + // Enable logging if (logger === true || logger === undefined) { return { provide: TERMINUS_LOGGER, - useClass: DefaultTerminusLogger, + useClass: Logger, }; } + // Disable logging if (logger === false) { return { provide: TERMINUS_LOGGER, - useValue: { - // eslint-disable-next-line @typescript-eslint/no-empty-function - log: () => {}, - // eslint-disable-next-line @typescript-eslint/no-empty-function - error: () => {}, - // eslint-disable-next-line @typescript-eslint/no-empty-function - warn: () => {}, - }, + useValue: NOOP_LOGGER, }; } + // Custom logger return { provide: TERMINUS_LOGGER, useClass: logger,