From c89cc4b395170e14759bebca2627d3a7830dcea3 Mon Sep 17 00:00:00 2001 From: Thomas Dupont Date: Wed, 18 May 2022 13:22:10 +0200 Subject: [PATCH] fix: logging component logs as coming from a worker --- src/logging/LazyLoggerFactory.ts | 3 ++- src/logging/Logger.ts | 2 +- test/unit/logging/LazyLoggerFactory.test.ts | 12 +++++++----- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/logging/LazyLoggerFactory.ts b/src/logging/LazyLoggerFactory.ts index 27fc2c12e..dd0b88c8c 100644 --- a/src/logging/LazyLoggerFactory.ts +++ b/src/logging/LazyLoggerFactory.ts @@ -1,3 +1,4 @@ +import cluster from 'cluster'; import { WrappingLogger } from './Logger'; import type { Logger } from './Logger'; import type { LoggerFactory } from './LoggerFactory'; @@ -51,7 +52,7 @@ class TemporaryLoggerFactory implements LoggerFactory { } // Emit all buffered log messages for (const { logger, level, message } of this.buffer.splice(0, this.buffer.length)) { - logger.log(level, message); + logger.log(level, message, { isPrimary: cluster.isMaster, pid: process.pid }); } } } diff --git a/src/logging/Logger.ts b/src/logging/Logger.ts index 040a79e4b..9eabe948f 100644 --- a/src/logging/Logger.ts +++ b/src/logging/Logger.ts @@ -38,7 +38,7 @@ export interface Logger extends SimpleLogger { * @param message - The message to log. * @param meta - Optional metadata to include in the log message. */ - log: (level: LogLevel, message: string) => Logger; + log: (level: LogLevel, message: string, meta?: LogMetadata) => Logger; /** * Log a message at the 'error' level. diff --git a/test/unit/logging/LazyLoggerFactory.test.ts b/test/unit/logging/LazyLoggerFactory.test.ts index 814a71fd5..7c57ded3a 100644 --- a/test/unit/logging/LazyLoggerFactory.test.ts +++ b/test/unit/logging/LazyLoggerFactory.test.ts @@ -53,13 +53,13 @@ describe('LazyLoggerFactory', (): void => { const wrappedA = dummyLoggerFactory.createLogger.mock.results[0].value as jest.Mocked; expect(wrappedA.log).toHaveBeenCalledTimes(2); - expect(wrappedA.log).toHaveBeenNthCalledWith(1, 'warn', 'message1', undefined); - expect(wrappedA.log).toHaveBeenNthCalledWith(2, 'error', 'message4', undefined); + expect(wrappedA.log).toHaveBeenNthCalledWith(1, 'warn', 'message1', expect.any(Object)); + expect(wrappedA.log).toHaveBeenNthCalledWith(2, 'error', 'message4', expect.any(Object)); const wrappedB = dummyLoggerFactory.createLogger.mock.results[1].value as jest.Mocked; expect(wrappedB.log).toHaveBeenCalledTimes(2); - expect(wrappedB.log).toHaveBeenNthCalledWith(1, 'warn', 'message2', undefined); - expect(wrappedB.log).toHaveBeenNthCalledWith(2, 'error', 'message3', undefined); + expect(wrappedB.log).toHaveBeenNthCalledWith(1, 'warn', 'message2', expect.any(Object)); + expect(wrappedB.log).toHaveBeenNthCalledWith(2, 'error', 'message3', expect.any(Object)); }); it('does not store more messages than the buffer limit.', (): void => { @@ -84,6 +84,8 @@ describe('LazyLoggerFactory', (): void => { expect(wrappedA.log).toHaveBeenCalledTimes(50); expect(wrappedB.log).toHaveBeenCalledTimes(49); expect(warningLogger.log).toHaveBeenCalledTimes(1); - expect(warningLogger.log).toHaveBeenCalledWith('warn', 'Memory-buffered logging limit of 100 reached', undefined); + expect(warningLogger.log).toHaveBeenCalledWith( + 'warn', 'Memory-buffered logging limit of 100 reached', expect.any(Object), + ); }); });