From bff0142e7a0d65c9204864b04a28cada2caaa894 Mon Sep 17 00:00:00 2001 From: Adrien de Peretti Date: Tue, 9 Dec 2025 19:27:38 +0100 Subject: [PATCH] chore(): Move event bus local logging (#14244) **what** Log only when actually processing events --- .changeset/perfect-ladybugs-share.md | 5 +++ packages/modules/event-bus-local/package.json | 2 +- .../src/services/__tests__/event-bus-local.ts | 4 +- .../src/services/event-bus-local.ts | 42 ++++++++++++------- 4 files changed, 35 insertions(+), 18 deletions(-) create mode 100644 .changeset/perfect-ladybugs-share.md diff --git a/.changeset/perfect-ladybugs-share.md b/.changeset/perfect-ladybugs-share.md new file mode 100644 index 0000000000..049a667c17 --- /dev/null +++ b/.changeset/perfect-ladybugs-share.md @@ -0,0 +1,5 @@ +--- +"@medusajs/event-bus-local": patch +--- + +chore(): Move event bus local logging diff --git a/packages/modules/event-bus-local/package.json b/packages/modules/event-bus-local/package.json index b0a09e7884..44269e49dd 100644 --- a/packages/modules/event-bus-local/package.json +++ b/packages/modules/event-bus-local/package.json @@ -28,7 +28,7 @@ "scripts": { "watch": "yarn run -T tsc --build --watch", "build": "yarn run -T rimraf dist && yarn run -T tsc --build", - "test": "../../../node_modules/.bin/jest --passWithNoTests", + "test": "../../../node_modules/.bin/jest --passWithNoTests --testPathPattern=src", "test:integration": "../../../node_modules/.bin/jest --passWithNoTests --no-cache --bail --detectOpenHandles --forceExit --logHeapUsage --testPathPattern=\"integration-tests/__tests__/.*\\.spec\\.ts\"" }, "peerDependencies": { diff --git a/packages/modules/event-bus-local/src/services/__tests__/event-bus-local.ts b/packages/modules/event-bus-local/src/services/__tests__/event-bus-local.ts index f3271e642b..ae1d1c080a 100644 --- a/packages/modules/event-bus-local/src/services/__tests__/event-bus-local.ts +++ b/packages/modules/event-bus-local/src/services/__tests__/event-bus-local.ts @@ -78,8 +78,6 @@ describe("LocalEventBusService", () => { name: "eventName", }) - expect(loggerMock.info).toHaveBeenCalledTimes(0) - await eventBus.emit( { name: "eventName", @@ -99,7 +97,7 @@ describe("LocalEventBusService", () => { name: "eventName", }) - expect(loggerMock.info).toHaveBeenCalledTimes(0) + expect(loggerMock.info).toHaveBeenCalledTimes(1) }) it("should emit multiple events", async () => { diff --git a/packages/modules/event-bus-local/src/services/event-bus-local.ts b/packages/modules/event-bus-local/src/services/event-bus-local.ts index f2cc814d7e..1edfa58e1d 100644 --- a/packages/modules/event-bus-local/src/services/event-bus-local.ts +++ b/packages/modules/event-bus-local/src/services/event-bus-local.ts @@ -22,7 +22,7 @@ eventEmitter.setMaxListeners(Infinity) // eslint-disable-next-line max-len export default class LocalEventBusService extends AbstractEventBusModuleService { - protected readonly logger_?: Logger + protected readonly logger_: Logger protected readonly eventEmitter_: EventEmitter protected groupedEventsMap_: StagingQueueType @@ -35,11 +35,27 @@ export default class LocalEventBusService extends AbstractEventBusModuleService // eslint-disable-next-line prefer-rest-params super(...arguments) - this.logger_ = logger + this.logger_ = logger ?? console this.eventEmitter_ = eventEmitter this.groupedEventsMap_ = new Map() } + private logProcessingEvent( + eventData: Message, + options: Record = {}, + totalSubscribers: number + ) { + if ( + totalSubscribers && + !options?.internal && + !eventData.options?.internal + ) { + this.logger_.info( + `Processing ${eventData.name} which has ${totalSubscribers} subscribers` + ) + } + } + /** * Accept an event name and some options * @@ -55,16 +71,6 @@ export default class LocalEventBusService extends AbstractEventBusModuleService : [eventsData] for (const eventData of normalizedEventsData) { - const eventListenersCount = this.eventEmitter_.listenerCount( - eventData.name - ) - - if (!options.internal && !eventData.options?.internal) { - this.logger_?.info( - `Processing ${eventData.name} which has ${eventListenersCount} subscribers` - ) - } - await this.groupOrEmitEvent({ ...eventData, options, @@ -103,6 +109,10 @@ export default class LocalEventBusService extends AbstractEventBusModuleService if (hasStarSubscriber) { this.eventEmitter_.emit("*", eventBody) } + + const totalSubscribers = + eventListenersCount + (hasStarSubscriber ? 1 : 0) + this.logProcessingEvent(eventData, options, totalSubscribers) }) } } @@ -144,6 +154,10 @@ export default class LocalEventBusService extends AbstractEventBusModuleService if (hasStarSubscriber) { this.eventEmitter_.emit("*", eventBody) } + + const totalSubscribers = + eventListenersCount + (hasStarSubscriber ? 1 : 0) + this.logProcessingEvent(event, options, totalSubscribers) }) } @@ -179,10 +193,10 @@ export default class LocalEventBusService extends AbstractEventBusModuleService try { await subscriber(data) } catch (err) { - this.logger_?.error( + this.logger_.error( `An error occurred while processing ${event.toString()}:` ) - this.logger_?.error(err) + this.logger_.error(err) } }