From 40fafd19f35f99702e00828bd7e717993f06004e Mon Sep 17 00:00:00 2001
From: Alexey Lunin <alexey.lunin@vereign.com>
Date: Tue, 14 May 2024 12:08:41 +0000
Subject: [PATCH] refactor: configure nestjs and credo-ts loggers using one env
 variable LOG_LEVEL OP#243

---
 apps/agent/src/configure.logger.ts | 17 +++++++++++++++++
 apps/agent/src/main.ts             |  5 +++++
 2 files changed, 22 insertions(+)
 create mode 100644 apps/agent/src/configure.logger.ts

diff --git a/apps/agent/src/configure.logger.ts b/apps/agent/src/configure.logger.ts
new file mode 100644
index 00000000..bd6386a8
--- /dev/null
+++ b/apps/agent/src/configure.logger.ts
@@ -0,0 +1,17 @@
+import { Logger, LogLevel as NestLogLevel } from "@nestjs/common";
+import { LogLevel } from "@credo-ts/core";
+
+const credoNestLoggerMap: { [key in LogLevel]: NestLogLevel[] } = {
+  [LogLevel.test]: ["error", "warn", "log", "debug", "verbose"],
+  [LogLevel.trace]: ["error", "warn", "log", "debug", "verbose"],
+  [LogLevel.debug]: ["error", "warn", "log", "debug"],
+  [LogLevel.info]: ["error", "warn", "log"],
+  [LogLevel.warn]: ["error", "warn"],
+  [LogLevel.error]: ["error"],
+  [LogLevel.fatal]: ["error"],
+  [LogLevel.off]: [],
+};
+
+export function configureLogger(credoLogLevel: LogLevel) {
+  Logger.overrideLogger(credoNestLoggerMap[credoLogLevel]);
+}
diff --git a/apps/agent/src/main.ts b/apps/agent/src/main.ts
index 4a0dece5..932ec151 100644
--- a/apps/agent/src/main.ts
+++ b/apps/agent/src/main.ts
@@ -10,6 +10,11 @@ import { AppModule } from "./app/app.module";
 import { DocumentBuilder, SwaggerModule } from "@nestjs/swagger";
 import { urlencoded, json } from "express";
 import * as fs from "fs";
+import process from "process";
+import { LogLevel } from "@credo-ts/core";
+import { configureLogger } from "./configure.logger";
+
+configureLogger(parseInt(process.env["LOG_LEVEL"]!) ?? LogLevel.error);
 
 async function bootstrap() {
   const app = await NestFactory.create(AppModule);
-- 
GitLab