diff --git a/apps/meteor/ee/app/livechat-enterprise/server/api/lib/priorities.ts b/apps/meteor/ee/app/livechat-enterprise/server/api/lib/priorities.ts index fe6dd51c3b5cf..58a50e68ff021 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/api/lib/priorities.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/api/lib/priorities.ts @@ -53,7 +53,7 @@ export async function updatePriority(_id: string, data: Pick { - logger.debug(`Channel '${channel}' doesn't exist, creating it.`); + logger.debug({ msg: "Channel doesn't exist, creating it", channel }); const roomOwner = settings.get('LDAP_Sync_User_Data_Channels_Admin') || ''; const user = await Users.findOneByUsernameIgnoringCase(roomOwner); if (!user) { - logger.error(`Unable to find user '${roomOwner}' to be the owner of the channel '${channel}'.`); + logger.error({ msg: 'Unable to find user to own channel', roomOwner, channel }); return; } @@ -374,7 +374,7 @@ export class LDAPEEManager extends LDAPManager { customFields: { ldap: true }, }); if (!room?.rid) { - logger.error(`Unable to auto-create channel '${channel}' during ldap sync.`); + logger.error({ msg: 'Unable to auto-create channel during LDAP sync', channel }); return; } @@ -438,14 +438,14 @@ export class LDAPEEManager extends LDAPManager { } if (room.teamMain) { - logger.error(`Can't add user to channel ${userChannelName} because it is a team.`); + logger.error({ msg: "Can't add user to channel because it is a team", userChannelName }); } else { channelsToAdd.add(room._id); await addUserToRoom(room._id, user); - logger.debug(`Synced user channel ${room._id} from LDAP for ${username}`); + logger.debug({ msg: 'Synced user channel from LDAP', roomId: room._id, username }); } } catch (e) { - logger.debug(`Failed to sync user room, user = ${username}, channel = ${userChannelName}`); + logger.debug({ msg: 'Failed to sync user room', username, userChannelName }); logger.error(e); } } @@ -539,7 +539,7 @@ export class LDAPEEManager extends LDAPManager { if (filteredMappedLdapGroups.length < ldapGroups.length) { const unmappedLdapGroups = ldapGroups.filter((ldapGroup) => !mappedLdapGroups.includes(ldapGroup)); - logger.error(`The following LDAP groups are not mapped in Rocket.Chat: "${unmappedLdapGroups.join(', ')}".`); + logger.error({ msg: 'The following LDAP groups are not mapped in Rocket.Chat', unmappedLdapGroups }); } if (!filteredMappedLdapGroups.length) { @@ -664,7 +664,7 @@ export class LDAPEEManager extends LDAPManager { } userData.deleted = deleted; - logger.info(`${deleted ? 'Deactivating' : 'Activating'} user ${userData.name} (${userData.username})`); + logger.info({ msg: 'Switching user status', name: userData.name, username: userData.username, active: !deleted }); } public static copyCustomFields(ldapUser: ILDAPEntry, userData: IImportUser): void { @@ -700,7 +700,7 @@ export class LDAPEEManager extends LDAPManager { return; } - logger.info('LDAP finished loading users. Users added to importer: ', count); + logger.info({ msg: 'LDAP finished loading users. Users added to importer', count }); resolve(); }, }); diff --git a/apps/meteor/ee/server/patches/mergeContacts.ts b/apps/meteor/ee/server/patches/mergeContacts.ts index b22b76813e06c..b3d4f84ce1a37 100644 --- a/apps/meteor/ee/server/patches/mergeContacts.ts +++ b/apps/meteor/ee/server/patches/mergeContacts.ts @@ -34,7 +34,7 @@ export const runMergeContacts = async ( return originalContact; } - logger.debug({ msg: `Found ${similarContacts.length} contacts to merge`, contactId }); + logger.debug({ msg: 'Found contacts to merge', contactId, count: similarContacts.length }); for await (const similarContact of similarContacts) { const fields = ContactMerger.getAllFieldsFromContact(similarContact); await ContactMerger.mergeFieldsIntoContact({ fields, contact: originalContact, session }); diff --git a/apps/meteor/ee/server/startup/federation.ts b/apps/meteor/ee/server/startup/federation.ts index 1b4f3b38c7d7d..6f4e6defd113a 100644 --- a/apps/meteor/ee/server/startup/federation.ts +++ b/apps/meteor/ee/server/startup/federation.ts @@ -31,8 +31,8 @@ const configureFederation = async () => { processEDUTyping: settings.get('Federation_Service_EDU_Process_Typing'), processEDUPresence: settings.get('Federation_Service_EDU_Process_Presence'), }); - } catch (error) { - logger.error('Failed to start federation-matrix service:', error); + } catch (err) { + logger.error({ msg: 'Failed to start federation-matrix service', err }); } }; diff --git a/apps/meteor/server/email/IMAPInterceptor.ts b/apps/meteor/server/email/IMAPInterceptor.ts index bd1a909cf6610..49bb087493c9b 100644 --- a/apps/meteor/server/email/IMAPInterceptor.ts +++ b/apps/meteor/server/email/IMAPInterceptor.ts @@ -80,12 +80,12 @@ export class IMAPInterceptor extends EventEmitter { // On successfully connected. this.imap.on('ready', async () => { if (this.isActive()) { - logger.info(`IMAP connected to ${this.config.user}`); + logger.info({ msg: 'IMAP connected', user: this.config.user }); clearTimeout(this.backoff); this.retries = 0; this.backoffDurationMS = 3000; await this.openInbox(); - this.imap.on('mail', () => this.getEmails().catch((err: Error) => logger.debug('Error on getEmails: ', err.message))); + this.imap.on('mail', () => this.getEmails().catch((err: Error) => logger.debug({ msg: 'Error on getEmails', err }))); } else { logger.error("Can't connect to IMAP server"); } @@ -130,7 +130,7 @@ export class IMAPInterceptor extends EventEmitter { async reconnect(): Promise { if (!this.isActive() && !this.canRetry()) { - logger.info(`Max retries reached for ${this.config.user}`); + logger.info({ msg: 'Max retries reached', user: this.config.user }); this.stop(); return this.selfDisable(); } @@ -183,14 +183,14 @@ export class IMAPInterceptor extends EventEmitter { const bodycb = (stream: NodeJS.ReadableStream, _info: ImapMessageBodyInfo): void => { simpleParser(new Readable().wrap(stream), (_err, email) => { if (this.options.rejectBeforeTS && email.date && email.date < this.options.rejectBeforeTS) { - logger.error({ msg: `Rejecting email on inbox ${this.config.user}`, subject: email.subject }); + logger.error({ msg: 'Rejecting email on inbox', user: this.config.user, subject: email.subject }); return; } this.emit('email', email); if (this.options.deleteAfterRead) { this.imap.seq.addFlags(email, 'Deleted', (err) => { if (err) { - logger.warn(`Mark deleted error: ${err}`); + logger.warn({ msg: 'Mark deleted error', err }); } }); } @@ -199,7 +199,7 @@ export class IMAPInterceptor extends EventEmitter { msg.once('body', bodycb); }; const errorcb = (err: Error): void => { - logger.warn(`Fetch error: ${err}`); + logger.warn({ msg: 'Fetch error', err }); reject(err); }; const endcb = (): void => { @@ -228,7 +228,7 @@ export class IMAPInterceptor extends EventEmitter { } async selfDisable(): Promise { - logger.info(`Disabling inbox ${this.inboxId}`); + logger.info({ msg: 'Disabling inbox', inboxId: this.inboxId }); // Again, if there's 2 inboxes with the same email, this will prevent looping over the already disabled one // Active filter is just in case :) @@ -238,6 +238,6 @@ export class IMAPInterceptor extends EventEmitter { void notifyOnEmailInboxChanged(value, 'updated'); } - logger.info(`IMAP inbox ${this.inboxId} automatically disabled`); + logger.info({ msg: 'IMAP inbox automatically disabled', inboxId: this.inboxId }); } } diff --git a/apps/meteor/server/services/messages/hooks/BeforeSaveBadWords.ts b/apps/meteor/server/services/messages/hooks/BeforeSaveBadWords.ts index b9240634023bb..0486640daa046 100644 --- a/apps/meteor/server/services/messages/hooks/BeforeSaveBadWords.ts +++ b/apps/meteor/server/services/messages/hooks/BeforeSaveBadWords.ts @@ -36,9 +36,9 @@ export class BeforeSaveBadWords { try { this.badWordsRegex = new RegExp(`(?<=^|[\\p{P}\\p{Z}])(${badWords.join('|')})(?=$|[\\p{P}\\p{Z}])`, 'gmiu'); - } catch (error) { + } catch (err) { this.badWordsRegex = null; - this.logger.error('Erorr when initializing bad words filter', error); + this.logger.error({ msg: 'Error when initializing bad words filter', err }); } if (goodWordsList?.length) { diff --git a/apps/meteor/server/settings/misc.ts b/apps/meteor/server/settings/misc.ts index 5246c747fb217..3bdab9ed9eb5d 100644 --- a/apps/meteor/server/settings/misc.ts +++ b/apps/meteor/server/settings/misc.ts @@ -40,7 +40,7 @@ export const verifyFingerPrint = async function (emit = true) { const fingerprint = generateFingerprint(); if (!DeploymentFingerPrintRecordHash) { - logger.info('Generating fingerprint for the first time', fingerprint); + logger.info({ msg: 'Generating fingerprint for the first time', fingerprint }); await updateFingerprint(fingerprint, true, emit); return; } @@ -50,12 +50,12 @@ export const verifyFingerPrint = async function (emit = true) { } if (process.env.AUTO_ACCEPT_FINGERPRINT === 'true') { - logger.info('Updating fingerprint as AUTO_ACCEPT_FINGERPRINT is true', fingerprint); + logger.info({ msg: 'Updating fingerprint as AUTO_ACCEPT_FINGERPRINT is true', fingerprint }); await updateFingerprint(fingerprint, true, emit); return; } - logger.warn('Updating fingerprint as pending for admin verification', fingerprint); + logger.warn({ msg: 'Updating fingerprint as pending for admin verification', fingerprint }); await updateFingerprint(fingerprint, false, emit); }; diff --git a/ee/packages/federation-matrix/src/FederationMatrix.ts b/ee/packages/federation-matrix/src/FederationMatrix.ts index 76c719d3b2db0..332d393c1d18c 100644 --- a/ee/packages/federation-matrix/src/FederationMatrix.ts +++ b/ee/packages/federation-matrix/src/FederationMatrix.ts @@ -112,24 +112,24 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS // canonical alias computed from name const matrixRoomResult = await federationSDK.createRoom(matrixUserId, roomName, room.t === 'c' ? 'public' : 'invite'); - this.logger.debug('Matrix room created:', matrixRoomResult); + this.logger.debug({ msg: 'Matrix room created', response: matrixRoomResult }); await Rooms.setAsFederated(room._id, { mrid: matrixRoomResult.room_id, origin: this.serverName }); // Members are NOT invited here - invites are sent via beforeAddUserToRoom callback. - this.logger.debug('Room creation completed successfully', room._id); + this.logger.debug({ msg: 'Room creation completed successfully', roomId: room._id }); return matrixRoomResult; - } catch (error) { - this.logger.error(error, 'Failed to create room'); - throw error; + } catch (err) { + this.logger.error({ msg: 'Failed to create room', err }); + throw err; } } async ensureFederatedUsersExistLocally(usernames: string[]): Promise { try { - this.logger.debug('Ensuring federated users exist locally before DM creation', { memberCount: usernames.length }); + this.logger.debug({ msg: 'Ensuring federated users exist locally before DM creation', memberCount: usernames.length }); const federatedUsers = usernames.filter(validateFederatedUsername); for await (const username of federatedUsers) { @@ -144,15 +144,15 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS origin: extractDomainFromMatrixUserId(username), }); } - } catch (error) { - this.logger.error(error, 'Failed to ensure federated users exist locally'); - throw error; + } catch (err) { + this.logger.error({ msg: 'Failed to ensure federated users exist locally', err }); + throw err; } } async createDirectMessageRoom(room: IRoom, members: IUser[], creatorId: IUser['_id']): Promise { try { - this.logger.debug('Creating direct message room in Matrix', { roomId: room._id, memberCount: members.length }); + this.logger.debug({ msg: 'Creating direct message room in Matrix', roomId: room._id, memberCount: members.length }); const creator = await Users.findOneById>(creatorId, { projection: { username: 1 } }); if (!creator) { @@ -172,9 +172,9 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS }); this.logger.debug({ roomId: room._id, msg: 'Direct message room creation completed successfully' }); - } catch (error) { - this.logger.error(error, 'Failed to create direct message room'); - throw error; + } catch (err) { + this.logger.error({ msg: 'Failed to create direct message room', err }); + throw err; } } @@ -226,13 +226,13 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS ); return lastEventId; - } catch (error) { + } catch (err) { this.logger.error({ msg: 'Failed to handle file message', messageId: message._id, - err: error, + err, }); - throw error; + throw err; } } @@ -323,10 +323,10 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS await Messages.setFederationEventIdById(message._id, result.eventId); - this.logger.debug('Message sent to Matrix successfully:', result.eventId); - } catch (error) { - this.logger.error(error, 'Failed to send message to Matrix'); - throw error; + this.logger.debug({ msg: 'Message sent to Matrix successfully', eventId: result.eventId }); + } catch (err) { + this.logger.error({ msg: 'Failed to send message to Matrix', err }); + throw err; } } @@ -385,10 +385,10 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS // TODO message.u?.username is not the user who removed the message const eventId = await federationSDK.redactMessage(roomIdSchema.parse(matrixRoomId), eventIdSchema.parse(matrixEventId)); - this.logger.debug('Message Redaction sent to Matrix successfully:', eventId); - } catch (error) { - this.logger.error(error, 'Failed to send redaction to Matrix'); - throw error; + this.logger.debug({ msg: 'Message redaction sent to Matrix successfully', eventId }); + } catch (err) { + this.logger.error({ msg: 'Failed to send redaction to Matrix', err }); + throw err; } } @@ -420,9 +420,9 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS ); }), ); - } catch (error) { - this.logger.error(error, 'Failed to invite a user to Matrix'); - throw error; + } catch (err) { + this.logger.error({ msg: 'Failed to invite a user to Matrix', err }); + throw err; } } @@ -457,9 +457,9 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS await Messages.setFederationReactionEventId(user.username || '', messageId, reaction, eventId); this.logger.debug({ eventId, msg: 'Reaction sent to Matrix successfully' }); - } catch (error) { - this.logger.error(error, 'Failed to send reaction to Matrix'); - throw error; + } catch (err) { + this.logger.error({ msg: 'Failed to send reaction to Matrix', err }); + throw err; } } @@ -473,7 +473,7 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS const targetEventId = message.federation?.eventId; if (!targetEventId) { - this.logger.warn(`No federation event ID found for message ${messageId}`); + this.logger.warn({ msg: 'No federation event ID found for message', messageId }); return; } @@ -511,9 +511,9 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS await Messages.unsetFederationReactionEventId(eventId, messageId, reaction); break; } - } catch (error) { - this.logger.error(error, 'Failed to remove reaction from Matrix'); - throw error; + } catch (err) { + this.logger.error({ msg: 'Failed to remove reaction from Matrix', err }); + throw err; } } @@ -530,7 +530,7 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS try { const room = await Rooms.findOneById(roomId); if (!room || !isRoomNativeFederated(room)) { - this.logger.debug(`Room ${roomId} is not federated, skipping leave operation`); + this.logger.debug({ msg: 'Room is not federated, skipping leave operation', roomId }); return; } @@ -538,10 +538,10 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS await federationSDK.leaveRoom(roomIdSchema.parse(room.federation.mrid), userIdSchema.parse(actualMatrixUserId)); - this.logger.info(`User ${user.username} left Matrix room ${room.federation.mrid} successfully`); - } catch (error) { - this.logger.error(error, 'Failed to leave room in Matrix'); - throw error; + this.logger.info({ msg: 'User left Matrix room successfully', username: user.username, roomId: room.federation.mrid }); + } catch (err) { + this.logger.error({ msg: 'Failed to leave room in Matrix', err }); + throw err; } } @@ -562,10 +562,15 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS `Kicked by ${userWhoRemoved.username}`, ); - this.logger.info(`User ${removedUser.username} was kicked from Matrix room ${room.federation.mrid} by ${userWhoRemoved.username}`); - } catch (error) { - this.logger.error(error, 'Failed to kick user from Matrix room'); - throw error; + this.logger.info({ + msg: 'User was kicked from Matrix room', + kickedUsername: removedUser.username, + roomId: room.federation.mrid, + performedBy: userWhoRemoved.username, + }); + } catch (err) { + this.logger.error({ msg: 'Failed to kick user from Matrix room', err }); + throw err; } } @@ -597,10 +602,10 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS eventIdSchema.parse(matrixEventId), ); - this.logger.debug('Message updated in Matrix successfully:', eventId); - } catch (error) { - this.logger.error(error, 'Failed to update message in Matrix'); - throw error; + this.logger.debug({ msg: 'Message updated in Matrix successfully', eventId }); + } catch (err) { + this.logger.error({ msg: 'Failed to update message in Matrix', err }); + throw err; } } @@ -784,12 +789,12 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS if (action === 'reject') { try { await federationSDK.rejectInvite(room.federation.mrid, matrixUserId); - } catch (error) { - if (error instanceof FederationRequestError && error.response.status === 403) { + } catch (err) { + if (err instanceof FederationRequestError && err.response.status === 403) { return Room.performUserRemoval(room, user); } - this.logger.error(error, 'Failed to reject invite in Matrix'); - throw error; + this.logger.error({ msg: 'Failed to reject invite in Matrix', err }); + throw err; } } } diff --git a/ee/packages/federation-matrix/src/api/_matrix/invite.ts b/ee/packages/federation-matrix/src/api/_matrix/invite.ts index 271d33ffaaba5..0933284f4c064 100644 --- a/ee/packages/federation-matrix/src/api/_matrix/invite.ts +++ b/ee/packages/federation-matrix/src/api/_matrix/invite.ts @@ -176,7 +176,7 @@ export const getMatrixInviteRoutes = () => { // check federation permission before processing the invite if (!(await Authorization.hasPermission(ourUser._id, 'access-federation'))) { - logger.info(`User ${userToCheck} denied federation access, rejecting invite to room ${roomId}`); + logger.info({ msg: 'User denied federation access, rejecting invite to room', userId: userToCheck, roomId }); return { body: { diff --git a/ee/packages/federation-matrix/src/events/edu.ts b/ee/packages/federation-matrix/src/events/edu.ts index bafdb57e783d3..2235e8479d811 100644 --- a/ee/packages/federation-matrix/src/events/edu.ts +++ b/ee/packages/federation-matrix/src/events/edu.ts @@ -11,7 +11,7 @@ export const edus = async () => { try { const matrixRoom = await Rooms.findOne({ 'federation.mrid': data.room_id }, { projection: { _id: 1 } }); if (!matrixRoom) { - logger.debug(`No bridged room found for Matrix room_id: ${data.room_id}`); + logger.debug({ msg: 'No bridged room found for Matrix room_id', roomId: data.room_id }); return; } @@ -20,8 +20,8 @@ export const edus = async () => { isTyping: data.typing, roomId: matrixRoom._id, }); - } catch (error) { - logger.error(error, 'Error handling Matrix typing event'); + } catch (err) { + logger.error({ msg: 'Error handling Matrix typing event', err }); } }); @@ -29,12 +29,12 @@ export const edus = async () => { try { const matrixUser = await Users.findOneByUsername(data.user_id); if (!matrixUser) { - logger.debug(`No federated user found for Matrix user_id: ${data.user_id}`); + logger.debug({ msg: 'No federated user found for Matrix user_id', userId: data.user_id }); return; } if (!matrixUser.federated) { - logger.debug(`User ${matrixUser.username} is not federated, skipping presence update from Matrix`); + logger.debug({ msg: 'User is not federated, skipping presence update from Matrix', username: matrixUser.username }); return; } @@ -47,7 +47,7 @@ export const edus = async () => { const status = statusMap[data.presence] || UserStatus.OFFLINE; if (matrixUser.status === status) { - logger.debug(`User ${matrixUser.username} already has status ${status}, skipping update`); + logger.debug({ msg: 'User already has target status, skipping update', username: matrixUser.username, status }); return; } @@ -66,9 +66,9 @@ export const edus = async () => { user: { status, _id, username, statusText, roles, name }, previousStatus: undefined, }); - logger.debug(`Updated presence for user ${matrixUser._id} to ${status} from Matrix federation`); - } catch (error) { - logger.error(error, 'Error handling Matrix presence event'); + logger.debug({ msg: 'Updated presence for user from Matrix federation', userId: matrixUser._id, status }); + } catch (err) { + logger.error({ msg: 'Error handling Matrix presence event', err }); } }); }; diff --git a/ee/packages/federation-matrix/src/events/member.ts b/ee/packages/federation-matrix/src/events/member.ts index 2dd2b532d23f1..a78c23861f0b8 100644 --- a/ee/packages/federation-matrix/src/events/member.ts +++ b/ee/packages/federation-matrix/src/events/member.ts @@ -28,8 +28,8 @@ async function getOrCreateFederatedUser(userId: string): Promise { name: userId, origin: userServerName, }); - } catch (error) { - logger.error(error, `Error getting or creating federated user ${userId}`); + } catch (err) { + logger.error({ msg: 'Error getting or creating federated user', err, userId }); throw new Error(`Error getting or creating federated user ${userId}`); } } @@ -82,8 +82,8 @@ async function getOrCreateFederatedRoom({ ...(roomType !== 'd' && { fname: roomFName }), // DMs do not have a fname }, }); - } catch (error) { - logger.error(error, `Error getting or creating federated room ${roomName}`); + } catch (err) { + logger.error({ msg: 'Error getting or creating federated room', err, roomName }); throw new Error(`Error getting or creating federated room ${roomName}`); } } @@ -271,10 +271,10 @@ export function member() { break; default: - logger.warn(`Unknown membership type: ${event.content.membership}`); + logger.warn({ msg: 'Unknown membership type', membership: event.content.membership }); } - } catch (error) { - logger.error(error, 'Failed to process Matrix membership event'); + } catch (err) { + logger.error({ msg: 'Failed to process Matrix membership event', err }); } }); } diff --git a/ee/packages/federation-matrix/src/events/message.ts b/ee/packages/federation-matrix/src/events/message.ts index 67ef247332625..2d15fd7e302cf 100644 --- a/ee/packages/federation-matrix/src/events/message.ts +++ b/ee/packages/federation-matrix/src/events/message.ts @@ -13,7 +13,7 @@ const logger = new Logger('federation-matrix:message'); async function getThreadMessageId(threadRootEventId: EventID): Promise<{ tmid: string; tshow: boolean } | undefined> { const threadRootMessage = await Messages.findOneByFederationId(threadRootEventId); if (!threadRootMessage) { - logger.warn('Thread root message not found for event:', threadRootEventId); + logger.warn({ msg: 'Thread root message not found for event', eventId: threadRootEventId }); return; } @@ -261,8 +261,8 @@ export function message() { ts: new Date(event.origin_server_ts), }); } - } catch (error) { - logger.error(error, 'Error processing Matrix message:'); + } catch (err) { + logger.error({ msg: 'Error processing Matrix message', err }); } }); @@ -377,8 +377,8 @@ export function message() { thread, ts: new Date(event.origin_server_ts), }); - } catch (error) { - logger.error(error, 'Error processing Matrix message:'); + } catch (err) { + logger.error({ msg: 'Error processing Matrix message', err }); } }); @@ -392,25 +392,25 @@ export function message() { const messageEvent = await FederationMatrix.getEventById(redactedEventId); if (!messageEvent || messageEvent.event.type !== 'm.room.message') { - logger.debug(`Event ${redactedEventId} is not a message event`); + logger.debug({ msg: 'Event is not a message event', eventId: redactedEventId }); return; } const rcMessage = await Messages.findOneByFederationId(event.redacts); if (!rcMessage) { - logger.debug(`No RC message found for event ${event.redacts}`); + logger.debug({ msg: 'No RC message found for event', eventId: event.redacts }); return; } const internalUsername = event.sender; const user = await Users.findOneByUsername(internalUsername); if (!user) { - logger.debug(`User not found: ${internalUsername}`); + logger.debug({ msg: 'User not found', username: internalUsername }); return; } await Message.deleteMessage(user, rcMessage); - } catch (error) { - logger.error(error, 'Failed to process Matrix removal redaction'); + } catch (err) { + logger.error({ msg: 'Failed to process Matrix removal redaction', err }); } }); } diff --git a/ee/packages/federation-matrix/src/events/reaction.ts b/ee/packages/federation-matrix/src/events/reaction.ts index 5060bb498f878..2871f0d9f5409 100644 --- a/ee/packages/federation-matrix/src/events/reaction.ts +++ b/ee/packages/federation-matrix/src/events/reaction.ts @@ -28,21 +28,21 @@ export function reaction() { } if (!isSetReaction) { - logger.debug(`No relates_to content in reaction event`); + logger.debug('No relates_to content in reaction event'); return; } const rcMessage = await Messages.findOneByFederationId(reactionTargetEventId); if (!rcMessage) { - logger.debug(`No RC message mapping found for Matrix event ${reactionTargetEventId}`); + logger.debug({ msg: 'No RC message mapping found for Matrix event', eventId: reactionTargetEventId }); return; } const reactionEmoji = emojione.toShort(reactionKey); await Message.reactToMessage(user._id, reactionEmoji, rcMessage._id, true); await Messages.setFederationReactionEventId(internalUsername, rcMessage._id, reactionEmoji, eventId); - } catch (error) { - logger.error(error, 'Failed to process Matrix reaction'); + } catch (err) { + logger.error({ msg: 'Failed to process Matrix reaction', err }); } }); @@ -56,7 +56,7 @@ export function reaction() { const reactionEvent = await FederationMatrix.getEventById(redactedEventId); if (!reactionEvent || reactionEvent.event.type !== 'm.reaction') { - logger.debug(`Event ${redactedEventId} is not a reaction event`); + logger.debug({ msg: 'Event is not a reaction event', eventId: redactedEventId }); return; } @@ -71,22 +71,22 @@ export function reaction() { const rcMessage = await Messages.findOneByFederationId(targetMessageEventId); if (!rcMessage) { - logger.debug(`No RC message found for event ${targetMessageEventId}`); + logger.debug({ msg: 'No RC message found for event', eventId: targetMessageEventId }); return; } const internalUsername = event.sender; const user = await Users.findOneByUsername(internalUsername); if (!user) { - logger.debug(`User not found: ${internalUsername}`); + logger.debug({ msg: 'User not found', username: internalUsername }); return; } const reactionEmoji = emojione.toShort(reactionKey); await Message.reactToMessage(user._id, reactionEmoji, rcMessage._id, false); await Messages.unsetFederationReactionEventId(redactedEventId, rcMessage._id, reactionEmoji); - } catch (error) { - logger.error(error, 'Failed to process Matrix reaction redaction'); + } catch (err) { + logger.error({ msg: 'Failed to process Matrix reaction redaction', err }); } }); } diff --git a/ee/packages/federation-matrix/src/services/MatrixMediaService.ts b/ee/packages/federation-matrix/src/services/MatrixMediaService.ts index 3d95a7caa33ce..d92084c09fced 100644 --- a/ee/packages/federation-matrix/src/services/MatrixMediaService.ts +++ b/ee/packages/federation-matrix/src/services/MatrixMediaService.ts @@ -36,7 +36,7 @@ export class MatrixMediaService { try { const file = await Uploads.findOneById(fileId); if (!file) { - logger.error(`File ${fileId} not found in database`); + logger.error({ msg: 'File not found in database', fileId }); throw new Error(`File ${fileId} not found`); } @@ -54,9 +54,9 @@ export class MatrixMediaService { }); return mxcUri; - } catch (error) { - logger.error(error, 'Error preparing file for Matrix'); - throw error; + } catch (err) { + logger.error({ msg: 'Error preparing file for Matrix', err }); + throw err; } } @@ -73,8 +73,8 @@ export class MatrixMediaService { } return file; - } catch (error) { - logger.error(error, 'Error retrieving local file'); + } catch (err) { + logger.error({ msg: 'Error retrieving local file', err }); return null; } } @@ -129,9 +129,9 @@ export class MatrixMediaService { }); return uploadedFile._id; - } catch (error) { - logger.error(error, 'Error downloading and storing remote file'); - throw error; + } catch (err) { + logger.error({ msg: 'Error downloading and storing remote file', err }); + throw err; } } diff --git a/ee/packages/license/src/events/emitter.ts b/ee/packages/license/src/events/emitter.ts index fee830618eb87..e0f375b6c893e 100644 --- a/ee/packages/license/src/events/emitter.ts +++ b/ee/packages/license/src/events/emitter.ts @@ -9,14 +9,14 @@ export function moduleValidated(this: LicenseManager, module: LicenseModule) { const external = !isInternalModuleName(module); this.emit('module', { module, external, valid: true }); - } catch (error) { - logger.error({ msg: `Error running module (valid: true) event: ${module}`, error }); + } catch (err) { + logger.error({ msg: 'Error running module (valid: true) event', module, err }); } try { this.emit(`valid:${module}`); - } catch (error) { - logger.error({ msg: `Error running module added event: ${module}`, error }); + } catch (err) { + logger.error({ msg: 'Error running module added event', module, err }); } } @@ -25,14 +25,14 @@ export function moduleRemoved(this: LicenseManager, module: LicenseModule) { const external = !isInternalModuleName(module); this.emit('module', { module, external, valid: false }); - } catch (error) { - logger.error({ msg: `Error running module (valid: false) event: ${module}`, error }); + } catch (err) { + logger.error({ msg: 'Error running module (valid: false) event', module, err }); } try { this.emit(`invalid:${module}`); - } catch (error) { - logger.error({ msg: `Error running module removed event: ${module}`, error }); + } catch (err) { + logger.error({ msg: 'Error running module removed event', module, err }); } } @@ -44,8 +44,8 @@ export function behaviorTriggered(this: LicenseManager, options: BehaviorWithCon reason, ...rest, }); - } catch (error) { - logger.error({ msg: 'Error running behavior triggered event', error }); + } catch (err) { + logger.error({ msg: 'Error running behavior triggered event', behavior, err }); } if (!['prevent_action'].includes(behavior)) { @@ -58,8 +58,8 @@ export function behaviorTriggered(this: LicenseManager, options: BehaviorWithCon try { this.emit(`limitReached:${rest.limit}`); - } catch (error) { - logger.error({ msg: 'Error running limit reached event', error }); + } catch (err) { + logger.error({ msg: 'Error running limit reached event', limit: rest.limit, err }); } } @@ -71,23 +71,23 @@ export function behaviorTriggeredToggled(this: LicenseManager, options: Behavior reason, ...rest, }); - } catch (error) { - logger.error({ msg: 'Error running behavior triggered event', error }); + } catch (err) { + logger.error({ msg: 'Error running behavior triggered event', behavior, err }); } } export function licenseValidated(this: LicenseManager) { try { this.emit('validate'); - } catch (error) { - logger.error({ msg: 'Error running license validated event', error }); + } catch (err) { + logger.error({ msg: 'Error running license validated event', err }); } } export function licenseInvalidated(this: LicenseManager) { try { this.emit('invalidate'); - } catch (error) { - logger.error({ msg: 'Error running license invalidated event', error }); + } catch (err) { + logger.error({ msg: 'Error running license invalidated event', err }); } }