From f52c82e82a84018bdc6cbad499bf0dba8f7b87d3 Mon Sep 17 00:00:00 2001 From: Mohamed Marrouchi Date: Mon, 27 Jan 2025 10:46:14 +0100 Subject: [PATCH] fix: logger ctx --- .../controllers/attachment.controller.spec.ts | 2 +- api/src/logger/logger.service.ts | 12 +++++++++--- api/src/main.ts | 9 +++++---- api/src/seeder.ts | 2 +- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/api/src/attachment/controllers/attachment.controller.spec.ts b/api/src/attachment/controllers/attachment.controller.spec.ts index 124bfc13..eb13cdb1 100644 --- a/api/src/attachment/controllers/attachment.controller.spec.ts +++ b/api/src/attachment/controllers/attachment.controller.spec.ts @@ -108,7 +108,7 @@ describe('AttachmentController', () => { helperService = module.get(HelperService); settingService = module.get(SettingService); - loggerService = module.get(LoggerService); + loggerService = await module.resolve(LoggerService); helperService.register( new LocalStorageHelper(settingService, helperService, loggerService), diff --git a/api/src/logger/logger.service.ts b/api/src/logger/logger.service.ts index be15d874..70a429a6 100644 --- a/api/src/logger/logger.service.ts +++ b/api/src/logger/logger.service.ts @@ -1,11 +1,17 @@ /* - * Copyright © 2024 Hexastack. All rights reserved. + * Copyright © 2025 Hexastack. All rights reserved. * * Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms: * 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission. * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import { ConsoleLogger } from '@nestjs/common'; +import { ConsoleLogger, Inject, Injectable, Scope } from '@nestjs/common'; +import { INQUIRER } from '@nestjs/core'; -export class LoggerService extends ConsoleLogger {} +@Injectable({ scope: Scope.TRANSIENT }) +export class LoggerService extends ConsoleLogger { + constructor(@Inject(INQUIRER) private parentClass: object) { + super(parentClass.constructor.name); + } +} diff --git a/api/src/main.ts b/api/src/main.ts index 507c3361..1ba080a4 100644 --- a/api/src/main.ts +++ b/api/src/main.ts @@ -101,10 +101,11 @@ async function bootstrap() { app.useWebSocketAdapter(redisIoAdapter); } - process.on('uncaughtException', (error) => { - if (error.stack?.toLowerCase().includes('smtp')) - app.get(LoggerService).error('SMTP error', error.stack); - else throw error; + process.on('uncaughtException', async (error) => { + if (error.stack?.toLowerCase().includes('smtp')) { + const logger = await app.resolve(LoggerService); + logger.error('SMTP error', error.stack); + } else throw error; }); if (!isProduction) { diff --git a/api/src/seeder.ts b/api/src/seeder.ts index 1811ae3f..c3abfaac 100644 --- a/api/src/seeder.ts +++ b/api/src/seeder.ts @@ -37,7 +37,7 @@ import { UserSeeder } from './user/seeds/user.seed'; import { userModels } from './user/seeds/user.seed-model'; export async function seedDatabase(app: INestApplicationContext) { - const logger = app.get(LoggerService); + const logger = await app.resolve(LoggerService); const modelSeeder = app.get(ModelSeeder); const categorySeeder = app.get(CategorySeeder); const contextVarSeeder = app.get(ContextVarSeeder);