diff --git a/packages/federation-sdk/src/services/config.service.ts b/packages/federation-sdk/src/services/config.service.ts index 5e21b2d2..62cc9d2f 100644 --- a/packages/federation-sdk/src/services/config.service.ts +++ b/packages/federation-sdk/src/services/config.service.ts @@ -91,7 +91,7 @@ export class ConfigService { if (error instanceof z.ZodError) { this.logger.error({ msg: 'Configuration validation failed:', - details: error.errors, + err: error, }); throw new Error( `Invalid configuration: ${error.errors.map((e) => `${e.path.join('.')}: ${e.message}`).join(', ')}`, diff --git a/packages/federation-sdk/src/services/database-connection.service.ts b/packages/federation-sdk/src/services/database-connection.service.ts index 1b2d27c5..1db76a3e 100644 --- a/packages/federation-sdk/src/services/database-connection.service.ts +++ b/packages/federation-sdk/src/services/database-connection.service.ts @@ -12,7 +12,7 @@ export class DatabaseConnectionService { constructor(private readonly configService: ConfigService) { this.connect().catch((err) => - this.logger.error(`Initial database connection failed: ${err.message}`), + this.logger.error({ msg: 'Initial database connection failed', err }), ); } @@ -53,8 +53,7 @@ export class DatabaseConnectionService { resolve(); } catch (error: unknown) { - const message = error instanceof Error ? error.message : String(error); - this.logger.error(`Failed to connect to MongoDB: ${message}`); + this.logger.error({ msg: 'Failed to connect to MongoDB', err: error }); this.connectionPromise = null; reject(new Error('Database connection failed')); } diff --git a/packages/federation-sdk/src/services/edu.service.ts b/packages/federation-sdk/src/services/edu.service.ts index ac552fef..6ebae18f 100644 --- a/packages/federation-sdk/src/services/edu.service.ts +++ b/packages/federation-sdk/src/services/edu.service.ts @@ -43,9 +43,10 @@ export class EduService { `Sent typing notification to ${uniqueServers.length} unique servers for room ${roomId}`, ); } catch (error) { - this.logger.error( - `Failed to send typing notification: ${error instanceof Error ? error.message : String(error)}`, - ); + this.logger.error({ + msg: 'Failed to send typing notification', + err: error, + }); throw error; } } @@ -81,9 +82,10 @@ export class EduService { `Sent presence updates to ${uniqueServers.size} unique servers for ${roomIds.length} rooms`, ); } catch (error) { - this.logger.error( - `Failed to send presence update to rooms: ${error instanceof Error ? error.message : String(error)}`, - ); + this.logger.error({ + msg: 'Failed to send presence update to rooms', + err: error, + }); throw error; } } diff --git a/packages/federation-sdk/src/services/event-authorization.service.ts b/packages/federation-sdk/src/services/event-authorization.service.ts index 8b8564a0..261474c3 100644 --- a/packages/federation-sdk/src/services/event-authorization.service.ts +++ b/packages/federation-sdk/src/services/event-authorization.service.ts @@ -174,7 +174,10 @@ export class EventAuthorizationService { return origin; } catch (error) { - this.logger.error(error, 'Error verifying request signature'); + this.logger.error({ + msg: 'Error verifying request signature', + err: error, + }); return; } } @@ -423,10 +426,15 @@ export class EventAuthorizationService { authorized: true, }; } catch (error) { - this.logger.error( - { error, eventId, authorizationHeader, method, uri, body }, - 'Error checking event access', - ); + this.logger.error({ + err: error, + eventId, + authorizationHeader, + method, + uri, + body, + msg: 'Error checking event access', + }); return { authorized: false, errorCode: 'M_UNKNOWN', @@ -477,10 +485,14 @@ export class EventAuthorizationService { authorized: true, }; } catch (error) { - this.logger.error( - { error, mediaId, authorizationHeader, method, uri }, - 'Error checking media access', - ); + this.logger.error({ + err: error, + mediaId, + authorizationHeader, + method, + uri, + msg: 'Error checking media access', + }); return { authorized: false, errorCode: 'M_UNKNOWN', diff --git a/packages/federation-sdk/src/services/event-fetcher.service.ts b/packages/federation-sdk/src/services/event-fetcher.service.ts index 8d09daba..bb527180 100644 --- a/packages/federation-sdk/src/services/event-fetcher.service.ts +++ b/packages/federation-sdk/src/services/event-fetcher.service.ts @@ -123,9 +123,6 @@ export class EventFetcherService { this.logger.error({ msg: 'Error fetching events from federation', err: error, - }); - this.logger.debug({ - msg: 'Failed federation request details', eventIds, targetServerName, }); diff --git a/packages/federation-sdk/src/services/event.service.ts b/packages/federation-sdk/src/services/event.service.ts index 0c2efd40..ea903013 100644 --- a/packages/federation-sdk/src/services/event.service.ts +++ b/packages/federation-sdk/src/services/event.service.ts @@ -294,9 +294,11 @@ export class EventService { try { await this.processEDU(edu); } catch (error) { - this.logger.error( - `Error processing EDU of type ${edu.edu_type}: ${error instanceof Error ? error.message : String(error)}`, - ); + this.logger.error({ + msg: 'Error processing incoming EDU', + edu, + err: error, + }); // Continue processing other EDUs even if one fails } } diff --git a/packages/federation-sdk/src/services/federation-request.service.ts b/packages/federation-sdk/src/services/federation-request.service.ts index ac5827d0..c528b600 100644 --- a/packages/federation-sdk/src/services/federation-request.service.ts +++ b/packages/federation-sdk/src/services/federation-request.service.ts @@ -113,9 +113,10 @@ export class FederationRequestService { return response; } catch (err) { - this.logger.error( - `Federation request failed: ${err instanceof Error ? err.message : String(err)}`, - ); + this.logger.error({ + msg: 'Error making signed federation request', + err, + }); throw err; } } diff --git a/packages/federation-sdk/src/services/missing-event.service.ts b/packages/federation-sdk/src/services/missing-event.service.ts index 691f465c..0a4fd7d4 100644 --- a/packages/federation-sdk/src/services/missing-event.service.ts +++ b/packages/federation-sdk/src/services/missing-event.service.ts @@ -55,9 +55,11 @@ export class MissingEventService { return true; } catch (err: unknown) { - this.logger.error( - `Error fetching missing event ${eventId}: ${err instanceof Error ? err.message : String(err)}`, - ); + this.logger.error({ + msg: 'Error fetching missing event', + eventId, + err, + }); return false; } } diff --git a/packages/federation-sdk/src/services/room.service.ts b/packages/federation-sdk/src/services/room.service.ts index 95ffcdfb..8616c7ab 100644 --- a/packages/federation-sdk/src/services/room.service.ts +++ b/packages/federation-sdk/src/services/room.service.ts @@ -1035,19 +1035,20 @@ export class RoomService { return previousEvents; } - const logContext = () => ({ + this.logger.info({ + msg: 'failed to fetch and process some events', roomId, branchEventId: context.event.eventId, missing, }); - this.logger.info(logContext(), 'failed to fetch and process some events'); - if (serverList.length === 0) { - this.logger.warn( - logContext(), - 'not enough servers participating in the room to retry missing events', - ); + this.logger.warn({ + msg: 'not enough servers participating in the room to retry missing events', + roomId, + branchEventId: context.event.eventId, + missing, + }); throw new Error(); } @@ -1055,10 +1056,13 @@ export class RoomService { for (let i = 0; i < serverList.length && missing.length > 0; i++) { const askingServer = serverList[i]; - this.logger.warn( - logContext(), - `attempting to fetch events from participating server ${askingServer}`, - ); + this.logger.warn({ + msg: 'attempting to fetch events from participating server', + askingServer, + roomId, + branchEventId: context.event.eventId, + missing, + }); const { events, missing: stillMissing } = await this._fetchMissingEvents( missing, @@ -1072,10 +1076,12 @@ export class RoomService { } if (missing.length > 0) { - this.logger.error( - logContext(), - 'server list exhausted, we still have missing events', - ); + this.logger.error({ + msg: 'server list exhausted, we still have missing events', + roomId, + branchEventId: context.event.eventId, + missing, + }); throw new Error(); } diff --git a/packages/federation-sdk/src/services/state.service.ts b/packages/federation-sdk/src/services/state.service.ts index faf550f1..9492b378 100644 --- a/packages/federation-sdk/src/services/state.service.ts +++ b/packages/federation-sdk/src/services/state.service.ts @@ -470,13 +470,11 @@ export class StateService { try { await checkEventAuthWithState(event, authState, store); } catch (error) { - this.logger.error( - { - eventId: event.eventId, - authEvents: event.getAuthEventIds(), - }, - 'event failed auth check while saving state, this should not have happened while walking an auth chain, the chain is incorrect', - ); + this.logger.error({ + eventId: event.eventId, + authEvents: event.getAuthEventIds(), + msg: 'event failed auth check while saving state, this should not have happened while walking an auth chain, the chain is incorrect', + }); // propagating throw, at this point this is not supposed to fail, something is wrong with the state we received throw error; @@ -790,10 +788,11 @@ export class StateService { servers.add(server); } } catch (error) { - this.logger.error( - { error, eventId: event.eventId }, - 'error extracting server', - ); + this.logger.error({ + err: error, + eventId: event.eventId, + msg: 'error extracting server', + }); } }