diff --git a/packages/backend/server/src/base/event/eventbus.ts b/packages/backend/server/src/base/event/eventbus.ts index af0c33a01a..7d8c46ff61 100644 --- a/packages/backend/server/src/base/event/eventbus.ts +++ b/packages/backend/server/src/base/event/eventbus.ts @@ -68,7 +68,7 @@ export class EventBus this.cls.run(() => { requestId = requestId ?? genRequestId('event'); this.cls.set(CLS_ID, requestId); - this.logger.log(`Server Event: ${event} (Received)`); + this.logger.debug(`Server Event: ${event} (Received)`); this.emit(event, payload); }); }); @@ -78,7 +78,7 @@ export class EventBus * Emit event to trigger all listeners on current instance */ async emitAsync(event: T, payload: Events[T]) { - this.logger.log(`Dispatch event: ${event} (async)`); + this.logger.debug(`Dispatch event: ${event} (async)`); return await this.emitter.emitAsync(event, payload); } @@ -86,7 +86,7 @@ export class EventBus * Emit event to trigger all listeners on current instance */ emit(event: T, payload: Events[T]) { - this.logger.log(`Dispatch event: ${event}`); + this.logger.debug(`Dispatch event: ${event}`); // NOTE(@forehalo): // Because all event handlers are wrapped in promisified metrics and cls context, they will always run in standalone tick. @@ -103,7 +103,7 @@ export class EventBus * Broadcast event to trigger all listeners on all instance in cluster */ broadcast(event: T, payload: Events[T]) { - this.logger.log(`Server Event: ${event} (Send)`); + this.logger.debug(`Server Event: ${event} (Send)`); this.server?.serverSideEmit('broadcast', event, payload, this.cls.getId()); } diff --git a/packages/backend/server/src/base/job/queue/executor.ts b/packages/backend/server/src/base/job/queue/executor.ts index 990a325a30..93689bab20 100644 --- a/packages/backend/server/src/base/job/queue/executor.ts +++ b/packages/backend/server/src/base/job/queue/executor.ts @@ -68,9 +68,9 @@ export class JobExecutor implements OnModuleDestroy { async () => { const signature = `[${name}] (${handler.name})`; try { - this.logger.log(`Job started: ${signature}`); + this.logger.debug(`Job started: ${signature}`); const ret = await handler.fn(payload); - this.logger.log(`Job finished: ${signature}, signal=${ret}`); + this.logger.debug(`Job finished: ${signature}, signal=${ret}`); return ret; } catch (e) { this.logger.error(`Job failed: ${signature}`, e); diff --git a/packages/backend/server/src/base/job/queue/queue.ts b/packages/backend/server/src/base/job/queue/queue.ts index 9d5a0d5240..70576f2d6b 100644 --- a/packages/backend/server/src/base/job/queue/queue.ts +++ b/packages/backend/server/src/base/job/queue/queue.ts @@ -30,7 +30,7 @@ export class JobQueue { } as JobData, opts ); - this.logger.log(`Job [${name}] added; id=${job.id}`); + this.logger.debug(`Job [${name}] added; id=${job.id}`); return job; } diff --git a/packages/backend/server/src/core/doc-service/controller.ts b/packages/backend/server/src/core/doc-service/controller.ts index 09a2db7322..6a28b982ba 100644 --- a/packages/backend/server/src/core/doc-service/controller.ts +++ b/packages/backend/server/src/core/doc-service/controller.ts @@ -32,7 +32,7 @@ export class DocRpcController { if (!doc) { throw new NotFound('Doc not found'); } - this.logger.log( + this.logger.debug( `get doc ${docId} from workspace ${workspaceId}, size: ${doc.bin.length}` ); res.setHeader('x-doc-timestamp', doc.timestamp.toString()); @@ -59,7 +59,7 @@ export class DocRpcController { if (!diff) { throw new NotFound('Doc not found'); } - this.logger.log( + this.logger.debug( `get doc diff ${docId} from workspace ${workspaceId}, missing size: ${diff.missing.length}, old state size: ${stateVector?.length}, new state size: ${diff.state.length}` ); res.setHeader('x-doc-timestamp', diff.timestamp.toString()); @@ -86,7 +86,7 @@ export class DocRpcController { if (!content) { throw new NotFound('Doc not found'); } - this.logger.log(`get doc content ${docId} from workspace ${workspaceId}`); + this.logger.debug(`get doc content ${docId} from workspace ${workspaceId}`); return content; } @@ -98,7 +98,7 @@ export class DocRpcController { if (!content) { throw new NotFound('Workspace not found'); } - this.logger.log(`get workspace content ${workspaceId}`); + this.logger.debug(`get workspace content ${workspaceId}`); return content; } } diff --git a/packages/backend/server/src/core/mail/sender.ts b/packages/backend/server/src/core/mail/sender.ts index 1304fb0f75..b941f8e41e 100644 --- a/packages/backend/server/src/core/mail/sender.ts +++ b/packages/backend/server/src/core/mail/sender.ts @@ -103,7 +103,7 @@ export class MailSender { } metrics.mail.counter('accepted_total').add(1, { name }); - this.logger.log(`Mail [${name}] sent successfully.`); + this.logger.debug(`Mail [${name}] sent successfully.`); if (this.usingTestAccount) { this.logger.debug( ` ⚙️ Mail preview url: ${getTestMessageUrl(result)}` diff --git a/packages/backend/server/src/core/notification/service.ts b/packages/backend/server/src/core/notification/service.ts index 4a13ab392f..c6057dd8a2 100644 --- a/packages/backend/server/src/core/notification/service.ts +++ b/packages/backend/server/src/core/notification/service.ts @@ -78,7 +78,7 @@ export class NotificationService { }, }, }); - this.logger.log(`Mention email sent to user ${receiver.id}`); + this.logger.debug(`Mention email sent to user ${receiver.id}`); } async createInvitation(input: InvitationNotificationCreate) { @@ -123,7 +123,7 @@ export class NotificationService { url: inviteUrl, }, }); - this.logger.log( + this.logger.debug( `Invitation email sent to user ${receiver.id} for workspace ${input.body.workspaceId}` ); } @@ -179,7 +179,7 @@ export class NotificationService { ), }, }); - this.logger.log( + this.logger.debug( `Invitation accepted email sent to user ${inviter.id} for workspace ${workspaceId}` ); } @@ -244,7 +244,7 @@ export class NotificationService { ), }, }); - this.logger.log( + this.logger.debug( `Invitation review request email sent to user ${reviewer.id} for workspace ${workspaceId}` ); } @@ -283,7 +283,7 @@ export class NotificationService { url: this.url.link(`/workspace/${workspaceId}`), }, }); - this.logger.log( + this.logger.debug( `Invitation review approved email sent to user ${receiver.id} for workspace ${workspaceId}` ); } @@ -321,7 +321,7 @@ export class NotificationService { }, }, }); - this.logger.log( + this.logger.debug( `Invitation review declined email sent to user ${receiver.id} for workspace ${workspaceId}` ); } diff --git a/packages/backend/server/src/core/permission/doc.ts b/packages/backend/server/src/core/permission/doc.ts index 8e478c9f89..9f930baf9e 100644 --- a/packages/backend/server/src/core/permission/doc.ts +++ b/packages/backend/server/src/core/permission/doc.ts @@ -36,7 +36,7 @@ export class DocAccessController extends AccessController<'doc'> { const allow = permissions[action] || false; if (!allow) { - this.logger.log('Doc access check failed', { + this.logger.debug('Doc access check failed', { action, resource, role, diff --git a/packages/backend/server/src/core/permission/workspace.ts b/packages/backend/server/src/core/permission/workspace.ts index b69d1b1c1e..59b384df84 100644 --- a/packages/backend/server/src/core/permission/workspace.ts +++ b/packages/backend/server/src/core/permission/workspace.ts @@ -40,7 +40,7 @@ export class WorkspaceAccessController extends AccessController<'ws'> { const allow = permissions[action] || false; if (!allow) { - this.logger.log('Workspace access check failed', { + this.logger.debug('Workspace access check failed', { action, resource, role, diff --git a/packages/backend/server/src/core/sync/gateway.ts b/packages/backend/server/src/core/sync/gateway.ts index c90e01eb6c..711c6fe630 100644 --- a/packages/backend/server/src/core/sync/gateway.ts +++ b/packages/backend/server/src/core/sync/gateway.ts @@ -152,13 +152,15 @@ export class SpaceSyncGateway handleConnection() { this.connectionCount++; - this.logger.log(`New connection, total: ${this.connectionCount}`); + this.logger.debug(`New connection, total: ${this.connectionCount}`); metrics.socketio.gauge('connections').record(this.connectionCount); } handleDisconnect() { this.connectionCount--; - this.logger.log(`Connection disconnected, total: ${this.connectionCount}`); + this.logger.debug( + `Connection disconnected, total: ${this.connectionCount}` + ); metrics.socketio.gauge('connections').record(this.connectionCount); } diff --git a/packages/backend/server/src/core/workspaces/resolvers/doc.ts b/packages/backend/server/src/core/workspaces/resolvers/doc.ts index 253910f1be..a77bd99318 100644 --- a/packages/backend/server/src/core/workspaces/resolvers/doc.ts +++ b/packages/backend/server/src/core/workspaces/resolvers/doc.ts @@ -536,7 +536,7 @@ export class DocResolver { @Args('input') input: UpdateDocDefaultRoleInput ) { if (input.role === DocRole.Owner) { - this.logger.log( + this.logger.debug( `Doc default role can not be owner (${JSON.stringify(input)})` ); throw new DocDefaultRoleCanNotBeOwner(); @@ -559,7 +559,7 @@ export class DocResolver { await this.ac.user(user.id).doc(input).assert('Doc.Users.Manage'); } catch (error) { if (error instanceof DocActionDenied) { - this.logger.log( + this.logger.debug( `User does not have permission to update page default role (${JSON.stringify( { ...pairs, diff --git a/packages/backend/server/src/models/doc.ts b/packages/backend/server/src/models/doc.ts index 63a4cee422..d5d7a19bdc 100644 --- a/packages/backend/server/src/models/doc.ts +++ b/packages/backend/server/src/models/doc.ts @@ -112,9 +112,11 @@ export class DocModel extends BaseModel { }, }, }); - this.logger.log( - `Deleted ${count} updates for workspace ${workspaceId} doc ${docId}` - ); + if (count > 0) { + this.logger.log( + `Deleted ${count} updates for workspace ${workspaceId} doc ${docId}` + ); + } return count; } diff --git a/packages/backend/server/src/models/history.ts b/packages/backend/server/src/models/history.ts index 65b2dd00d6..7155e6b140 100644 --- a/packages/backend/server/src/models/history.ts +++ b/packages/backend/server/src/models/history.ts @@ -47,7 +47,7 @@ export class HistoryModel extends BaseModel { expiredAt: new Date(Date.now() + maxAge), }, }); - this.logger.log( + this.logger.debug( `Created history ${row.timestamp} for ${snapshot.docId} in ${snapshot.spaceId}` ); return { @@ -163,7 +163,9 @@ export class HistoryModel extends BaseModel { }, }, }); - this.logger.log(`Deleted ${count} expired histories`); + if (count > 0) { + this.logger.log(`Deleted ${count} expired histories`); + } return count; } } diff --git a/packages/backend/server/src/models/notification.ts b/packages/backend/server/src/models/notification.ts index 7dc88df4a5..a180c4befa 100644 --- a/packages/backend/server/src/models/notification.ts +++ b/packages/backend/server/src/models/notification.ts @@ -133,7 +133,7 @@ export class NotificationModel extends BaseModel { type: NotificationType.Mention, body: data.body, }); - this.logger.log( + this.logger.debug( `Created mention notification:${row.id} for user:${data.userId} in workspace:${data.body.workspaceId}` ); return row as MentionNotification; @@ -154,7 +154,7 @@ export class NotificationModel extends BaseModel { type, body: data.body, }); - this.logger.log( + this.logger.debug( `Created ${type} notification ${row.id} to user ${data.userId} in workspace ${data.body.workspaceId}` ); return row as InvitationNotification; @@ -171,7 +171,7 @@ export class NotificationModel extends BaseModel { type, body: data.body, }); - this.logger.log( + this.logger.debug( `Created ${type} notification ${row.id} to user ${data.userId} in workspace ${data.body.workspaceId}` ); return row as InvitationReviewDeclinedNotification; @@ -239,7 +239,9 @@ export class NotificationModel extends BaseModel { // delete notifications that are older than one year where: { createdAt: { lte: new Date(Date.now() - ONE_YEAR) } }, }); - this.logger.log(`Deleted ${count} expired notifications`); + if (count > 0) { + this.logger.log(`Deleted ${count} expired notifications`); + } return count; } diff --git a/packages/backend/server/src/models/session.ts b/packages/backend/server/src/models/session.ts index 88c9512e42..44940b27cb 100644 --- a/packages/backend/server/src/models/session.ts +++ b/packages/backend/server/src/models/session.ts @@ -37,7 +37,9 @@ export class SessionModel extends BaseModel { id, }, }); - this.logger.log(`Deleted session success by id: ${id}`); + if (count > 0) { + this.logger.log(`Deleted session success by id: ${id}`); + } return count; } @@ -134,20 +136,24 @@ export class SessionModel extends BaseModel { sessionId, }, }); - this.logger.log( - `Deleted user sessions success by userId: ${userId} and sessionId: ${sessionId}` - ); + if (count > 0) { + this.logger.log( + `Deleted user sessions success by userId: ${userId} and sessionId: ${sessionId}` + ); + } return count; } async cleanExpiredUserSessions() { - const result = await this.db.userSession.deleteMany({ + const { count } = await this.db.userSession.deleteMany({ where: { expiresAt: { lte: new Date(), }, }, }); - this.logger.log(`Cleaned ${result.count} expired user sessions`); + if (count > 0) { + this.logger.log(`Cleaned ${count} expired user sessions`); + } } } diff --git a/packages/backend/server/src/models/user-doc.ts b/packages/backend/server/src/models/user-doc.ts index 22e5e0adfb..bac804b17e 100644 --- a/packages/backend/server/src/models/user-doc.ts +++ b/packages/backend/server/src/models/user-doc.ts @@ -92,13 +92,15 @@ export class UserDocModel extends BaseModel { * Delete a user doc by userId and docId. */ async delete(userId: string, docId: string) { - await this.db.userSnapshot.deleteMany({ + const { count } = await this.db.userSnapshot.deleteMany({ where: { userId, id: docId, }, }); - this.logger.log(`Deleted user ${userId} doc ${docId}`); + if (count > 0) { + this.logger.log(`Deleted user ${userId} doc ${docId}`); + } } /** @@ -110,7 +112,9 @@ export class UserDocModel extends BaseModel { userId, }, }); - this.logger.log(`Deleted user ${userId} ${count} docs`); + if (count > 0) { + this.logger.log(`Deleted user ${userId} ${count} docs`); + } return count; } } diff --git a/packages/backend/server/src/models/user-settings.ts b/packages/backend/server/src/models/user-settings.ts index f54afa5e3e..7be7ad412f 100644 --- a/packages/backend/server/src/models/user-settings.ts +++ b/packages/backend/server/src/models/user-settings.ts @@ -36,7 +36,7 @@ export class UserSettingsModel extends BaseModel { payload, }, }); - this.logger.log(`UserSettings updated for user ${userId}`); + this.logger.debug(`UserSettings updated for user ${userId}`); return payload; } diff --git a/packages/backend/server/src/models/user.ts b/packages/backend/server/src/models/user.ts index 858d2fd939..d97518ab2d 100644 --- a/packages/backend/server/src/models/user.ts +++ b/packages/backend/server/src/models/user.ts @@ -303,7 +303,7 @@ export class UserModel extends BaseModel { const account = await this.db.connectedAccount.create({ data, }); - this.logger.log( + this.logger.debug( `Connected account ${account.provider}:${account.id} created` ); return account; diff --git a/packages/backend/server/src/models/verification-token.ts b/packages/backend/server/src/models/verification-token.ts index 9956b35140..5da61e5190 100644 --- a/packages/backend/server/src/models/verification-token.ts +++ b/packages/backend/server/src/models/verification-token.ts @@ -122,7 +122,11 @@ export class VerificationTokenModel extends BaseModel { type, }, }); - this.logger.log(`Deleted token success by type ${type} and token ${token}`); + if (count > 0) { + this.logger.log( + `Deleted token success by type ${type} and token ${token}` + ); + } return count; } @@ -137,7 +141,9 @@ export class VerificationTokenModel extends BaseModel { }, }, }); - this.logger.log(`Cleaned ${count} expired tokens`); + if (count > 0) { + this.logger.log(`Cleaned ${count} expired tokens`); + } return count; } }