From 30cc5c7c2461c2726d48ddad59436efea2ca1aae Mon Sep 17 00:00:00 2001 From: Paul <108695806+pxrl@users.noreply.github.com> Date: Tue, 9 Apr 2024 23:38:07 +0200 Subject: [PATCH] feat(financial-templates-lib): Support custom logger metadata This is intended to permit log messages emitted by an individual bot to be distinguished from other concurrent instances of the same bot. --- packages/logger/src/logger/Logger.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/logger/src/logger/Logger.ts b/packages/logger/src/logger/Logger.ts index dd35a475de..f67f5ddb20 100644 --- a/packages/logger/src/logger/Logger.ts +++ b/packages/logger/src/logger/Logger.ts @@ -75,9 +75,15 @@ export const isDictionary = (arg: unknown): arg is Record => { return typeof arg === "object" && arg !== null && !Array.isArray(arg); }; -function createBaseLogger(level: string, transports: Transport[], botIdentifier: string): _Logger { +function createBaseLogger( + level: string, + transports: Transport[], + botIdentifier: string, + defaultMeta: Record +): _Logger { return winston.createLogger({ level, + defaultMeta, format: winston.format.combine( winston.format(botIdentifyFormatter(botIdentifier))(), winston.format((logEntry) => logEntry)(), @@ -103,10 +109,11 @@ function filterLogErrorTransports(transports: Transport[]): Transport[] { export function createNewLogger( injectedTransports: Transport[] = [], transportsConfig = {}, - botIdentifier = process.env.BOT_IDENTIFIER || "NO_BOT_ID" + botIdentifier = process.env.BOT_IDENTIFIER || "NO_BOT_ID", + metadata: Record ): AugmentedLogger { const transports = [...createTransports(transportsConfig), ...injectedTransports]; - const logger = createBaseLogger("debug", transports, botIdentifier) as AugmentedLogger; + const logger = createBaseLogger("debug", transports, botIdentifier, metadata) as AugmentedLogger; logger.flushTimeout = process.env.LOGGER_FLUSH_TIMEOUT ? parseInt(process.env.LOGGER_FLUSH_TIMEOUT) : 30;