From f3dfb9769f269c6524234aa6de6b6e5529c4a7bc Mon Sep 17 00:00:00 2001 From: Carlos Santos <4a.santos@gmail.com> Date: Fri, 28 Mar 2025 10:25:57 +0100 Subject: [PATCH] refactor: Improve logging messages for clarity and consistency across services --- backend/src/controllers/livekit-webhook.controller.ts | 4 ++-- backend/src/controllers/recording.controller.ts | 4 ++-- backend/src/services/room.service.ts | 6 +----- backend/src/services/s3.service.ts | 6 +++--- backend/src/services/task-scheduler.service.ts | 5 ++--- 5 files changed, 10 insertions(+), 15 deletions(-) diff --git a/backend/src/controllers/livekit-webhook.controller.ts b/backend/src/controllers/livekit-webhook.controller.ts index ca58adb..3e3599b 100644 --- a/backend/src/controllers/livekit-webhook.controller.ts +++ b/backend/src/controllers/livekit-webhook.controller.ts @@ -19,11 +19,11 @@ export const lkWebhookHandler = async (req: Request, res: Response) => { const belongsToOpenViduMeet = await lkWebhookService.webhookEventBelongsToOpenViduMeet(webhookEvent); if (!belongsToOpenViduMeet) { - logger.verbose(`Skipping webhook, event is not related to OpenVidu Meet: ${eventType}`); + logger.verbose(`Webhook skipped: ${eventType}. Not related to OpenVidu Meet.`); return res.status(200).send(); } - logger.verbose(`Received webhook event: ${eventType}`); + logger.verbose(`Webhook received: ${eventType}`); switch (eventType) { case 'egress_started': diff --git a/backend/src/controllers/recording.controller.ts b/backend/src/controllers/recording.controller.ts index 189d211..f8e7591 100644 --- a/backend/src/controllers/recording.controller.ts +++ b/backend/src/controllers/recording.controller.ts @@ -8,7 +8,7 @@ export const startRecording = async (req: Request, res: Response) => { const logger = container.get(LoggerService); const recordingService = container.get(RecordingService); const { roomId } = req.body; - logger.info(`Starting recording in ${roomId}`); + logger.info(`Initiating recording for room ${roomId}`); try { const recordingInfo = await recordingService.startRecording(roomId); @@ -90,7 +90,7 @@ export const stopRecording = async (req: Request, res: Response) => { const recordingId = req.params.recordingId; try { - logger.info(`Stopping recording ${recordingId}`); + logger.info(`Initiating stop for recording ${recordingId}`); const recordingService = container.get(RecordingService); const recordingInfo = await recordingService.stopRecording(recordingId); diff --git a/backend/src/services/room.service.ts b/backend/src/services/room.service.ts index 526c387..3e503af 100644 --- a/backend/src/services/room.service.ts +++ b/backend/src/services/room.service.ts @@ -212,11 +212,7 @@ export class RoomService { * @returns A promise that resolves when the signal has been sent. */ async sendSignal(roomName: string, rawData: any, options: SendDataOptions): Promise { - this.logger.verbose( - `Sending signal "${options.topic}" to ${ - options.destinationIdentities ? `participant(s) ${options.destinationIdentities}` : 'all participants' - } in room "${roomName}".` - ); + this.logger.verbose(`Notifying participants in room ${roomName}: "${options.topic}".`); this.livekitService.sendData(roomName, rawData, options); } diff --git a/backend/src/services/s3.service.ts b/backend/src/services/s3.service.ts index dbf378c..4124ddd 100644 --- a/backend/src/services/s3.service.ts +++ b/backend/src/services/s3.service.ts @@ -95,10 +95,10 @@ export class S3Service { Body: JSON.stringify(body) }); const result = await this.retryOperation(() => this.run(command)); - this.logger.info(`S3 saveObject: successfully saved object ${fullKey} in bucket ${bucket}`); + this.logger.info(`S3: successfully saved object '${fullKey}' in bucket '${bucket}'`); return result; } catch (error: any) { - this.logger.error(`S3 saveObject: error putting object ${fullKey} in bucket ${bucket}: ${error}`); + this.logger.error(`S3: error saving object '${fullKey}' in bucket '${bucket}': ${error}`); if (error.code === 'ECONNREFUSED') { throw errorS3NotAvailable(error); @@ -404,7 +404,7 @@ export class S3Service { while (true) { try { - this.logger.verbose(`S3 retryOperation: attempt ${attempt + 1}`); + this.logger.verbose(`S3 operation: attempt ${attempt + 1}`); return await operation(); } catch (error) { attempt++; diff --git a/backend/src/services/task-scheduler.service.ts b/backend/src/services/task-scheduler.service.ts index 9916b93..465577f 100644 --- a/backend/src/services/task-scheduler.service.ts +++ b/backend/src/services/task-scheduler.service.ts @@ -27,8 +27,7 @@ export class TaskSchedulerService { * @returns A promise that resolves when the garbage collector has been successfully started. */ async startRoomGarbageCollector(callbackFn: () => Promise): Promise { - const lockTtl = 59 * 60 * 1000; // TTL of 59 minutes - + // Stop the existing job if it exists if (this.roomGarbageCollectorJob) { this.roomGarbageCollectorJob.stop(); this.roomGarbageCollectorJob = null; @@ -37,7 +36,7 @@ export class TaskSchedulerService { // Create a cron job to run every hour this.roomGarbageCollectorJob = new CronJob('0 * * * *', async () => { try { - const lock = await this.mutexService.acquire(RedisLockName.GARBAGE_COLLECTOR, lockTtl); + const lock = await this.mutexService.acquire(MeetLock.getRoomGarbageCollectorLock(), ms('59m')); if (!lock) { this.logger.debug('Failed to acquire lock for room garbage collection. Skipping.');