Browse Source

fix: add transition keyword to logs for better searching

Karol Sójko 1 year ago
parent
commit
1026ce383c

+ 27 - 21
packages/revisions/src/Domain/UseCase/Transition/TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser/TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser.ts

@@ -22,7 +22,7 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
   ) {}
 
   async execute(dto: TransitionRevisionsFromPrimaryToSecondaryDatabaseForUserDTO): Promise<Result<void>> {
-    this.logger.info(`[${dto.userUuid}] Transitioning revisions for user`)
+    this.logger.info(`[TRANSITION][${dto.userUuid}] Transitioning revisions for user`)
 
     if (this.secondRevisionsRepository === null) {
       return Result.fail('Secondary revision repository is not set')
@@ -39,7 +39,7 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
     const userUuid = userUuidOrError.getValue()
 
     if (await this.isAlreadyMigrated(userUuid)) {
-      this.logger.info(`[${userUuid.value}] User already migrated.`)
+      this.logger.info(`[TRANSITION][${userUuid.value}] User already migrated.`)
 
       await this.updateTransitionStatus(userUuid, TransitionStatus.STATUSES.Verified, dto.timestamp)
 
@@ -50,7 +50,7 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
 
     const migrationTimeStart = this.timer.getTimestampInMicroseconds()
 
-    this.logger.info(`[${dto.userUuid}] Migrating revisions`)
+    this.logger.info(`[TRANSITION][${dto.userUuid}] Migrating revisions`)
 
     const migrationResult = await this.migrateRevisionsForUser(userUuid, dto.timestamp)
     if (migrationResult.isFailed()) {
@@ -59,11 +59,11 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
       return Result.fail(migrationResult.getError())
     }
 
-    this.logger.info(`[${dto.userUuid}] Revisions migrated`)
+    this.logger.info(`[TRANSITION][${dto.userUuid}] Revisions migrated`)
 
     await this.allowForPrimaryDatabaseToCatchUp()
 
-    this.logger.info(`[${dto.userUuid}] Checking integrity between primary and secondary database`)
+    this.logger.info(`[TRANSITION][${dto.userUuid}] Checking integrity between primary and secondary database`)
 
     const integrityCheckResult = await this.checkIntegrityBetweenPrimaryAndSecondaryDatabase(userUuid)
     if (integrityCheckResult.isFailed()) {
@@ -83,7 +83,7 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
       await this.updateTransitionStatus(userUuid, TransitionStatus.STATUSES.Failed, dto.timestamp)
 
       this.logger.error(
-        `[${dto.userUuid}] Failed to clean up secondary database revisions: ${cleanupResult.getError()}`,
+        `[TRANSITION][${dto.userUuid}] Failed to clean up secondary database revisions: ${cleanupResult.getError()}`,
       )
     }
 
@@ -93,7 +93,7 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
     const migrationDurationTimeStructure = this.timer.convertMicrosecondsToTimeStructure(migrationDuration)
 
     this.logger.info(
-      `[${dto.userUuid}] Transitioned revisions in ${migrationDurationTimeStructure.hours}h ${migrationDurationTimeStructure.minutes}m ${migrationDurationTimeStructure.seconds}s ${migrationDurationTimeStructure.milliseconds}ms`,
+      `[TRANSITION][${dto.userUuid}] Transitioned revisions in ${migrationDurationTimeStructure.hours}h ${migrationDurationTimeStructure.minutes}m ${migrationDurationTimeStructure.seconds}s ${migrationDurationTimeStructure.milliseconds}ms`,
     )
 
     await this.updateTransitionStatus(userUuid, TransitionStatus.STATUSES.Verified, dto.timestamp)
@@ -107,14 +107,14 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
         userUuid.value,
       )
 
-      this.logger.info(`[${userUuid.value}] Migrating from page ${initialPage}`)
+      this.logger.info(`[TRANSITION][${userUuid.value}] Migrating from page ${initialPage}`)
 
       const totalRevisionsCountForUser = await (
         this.secondRevisionsRepository as RevisionRepositoryInterface
       ).countByUserUuid(userUuid)
-      this.logger.info(`[${userUuid.value}] Total revisions count for user: ${totalRevisionsCountForUser}`)
+      this.logger.info(`[TRANSITION][${userUuid.value}] Total revisions count for user: ${totalRevisionsCountForUser}`)
       const totalPages = Math.ceil(totalRevisionsCountForUser / this.pageSize)
-      this.logger.info(`[${userUuid.value}] Total pages: ${totalPages}`)
+      this.logger.info(`[TRANSITION][${userUuid.value}] Total pages: ${totalPages}`)
       let insertedCount = 0
       let newerCount = 0
       let identicalCount = 0
@@ -125,12 +125,12 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
         const isPageInEvery10Percent = currentPage % Math.ceil(totalPages / 10) === 0
         if (isPageInEvery10Percent) {
           this.logger.info(
-            `[${userUuid.value}] Migrating revisions for user: ${Math.round(
+            `[TRANSITION][${userUuid.value}] Migrating revisions for user: ${Math.round(
               (currentPage / totalPages) * 100,
             )}% completed`,
           )
           this.logger.info(
-            `[${userUuid.value}] Inserted ${insertedCount} revisions so far. Skipped ${newerCount} revisions because they were newer in primary database. Skipped ${identicalCount} revisions because they were identical in primary and secondary database. Updated ${updatedCount} revisions because they were older in primary database.`,
+            `[TRANSITION][${userUuid.value}] Inserted ${insertedCount} revisions so far. Skipped ${newerCount} revisions because they were newer in primary database. Skipped ${identicalCount} revisions because they were identical in primary and secondary database. Updated ${updatedCount} revisions because they were older in primary database.`,
           )
           await this.updateTransitionStatus(userUuid, TransitionStatus.STATUSES.InProgress, timestamp)
         }
@@ -150,7 +150,9 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
         for (const revision of revisions) {
           try {
             if (processedUuids.has(revision.id.toString())) {
-              this.logger.warn(`[${userUuid.value}] Revision ${revision.id.toString()} was already processed`)
+              this.logger.warn(
+                `[TRANSITION][${userUuid.value}] Revision ${revision.id.toString()} was already processed`,
+              )
               duplicatedCount++
             } else {
               processedUuids.add(revision.id.toString())
@@ -169,7 +171,7 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
             } else {
               if (revisionInPrimary.props.dates.updatedAt > revision.props.dates.updatedAt) {
                 this.logger.info(
-                  `[${
+                  `[TRANSITION][${
                     userUuid.value
                   }] Revision ${revision.id.toString()} is older in secondary than revision in primary database`,
                 )
@@ -190,17 +192,21 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
             }
           } catch (error) {
             this.logger.error(
-              `Errored when saving revision ${revision.id.toString()} to primary database: ${(error as Error).message}`,
+              `[TRANSITION][${
+                userUuid.value
+              }] Errored when saving revision ${revision.id.toString()} to primary database: ${
+                (error as Error).message
+              }`,
             )
           }
         }
       }
 
       this.logger.info(
-        `[${userUuid.value}] Inserted ${insertedCount} revisions. Skipped ${newerCount} revisions because they were newer in primary database. Skipped ${identicalCount} revisions because they were identical in primary and secondary database. Updated ${updatedCount} revisions because they were older in primary database.`,
+        `[TRANSITION][${userUuid.value}] Inserted ${insertedCount} revisions. Skipped ${newerCount} revisions because they were newer in primary database. Skipped ${identicalCount} revisions because they were identical in primary and secondary database. Updated ${updatedCount} revisions because they were older in primary database.`,
       )
       if (duplicatedCount > 0) {
-        this.logger.warn(`[${userUuid.value}] Skipped ${duplicatedCount} duplicated revisions`)
+        this.logger.warn(`[TRANSITION][${userUuid.value}] Skipped ${duplicatedCount} duplicated revisions`)
       }
 
       return Result.ok()
@@ -214,7 +220,7 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
     revisionRepository: RevisionRepositoryInterface,
   ): Promise<Result<void>> {
     try {
-      this.logger.info(`[${userUuid.value}] Deleting all revisions from secondary database`)
+      this.logger.info(`[TRANSITION][${userUuid.value}] Deleting all revisions from secondary database`)
 
       await revisionRepository.removeByUserUuid(userUuid)
 
@@ -235,7 +241,7 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
         userUuid.value,
       )
 
-      this.logger.info(`[${userUuid.value}] Checking integrity from page ${initialPage}`)
+      this.logger.info(`[TRANSITION][${userUuid.value}] Checking integrity from page ${initialPage}`)
 
       const totalRevisionsCountForUserInSecondary = await (
         this.secondRevisionsRepository as RevisionRepositoryInterface
@@ -278,7 +284,7 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
 
           if (revisionInPrimary.props.dates.updatedAt > revision.props.dates.updatedAt) {
             this.logger.info(
-              `[${
+              `[TRANSITION][${
                 userUuid.value
               }] Integrity check of revision ${revision.id.toString()} - is older in secondary than revision in primary database`,
             )
@@ -324,7 +330,7 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
 
     if (totalRevisionsCountForUserInSecondary > 0) {
       this.logger.info(
-        `[${userUuid.value}] User has ${totalRevisionsCountForUserInSecondary} revisions in secondary database.`,
+        `[TRANSITION][${userUuid.value}] User has ${totalRevisionsCountForUserInSecondary} revisions in secondary database.`,
       )
     }
 

+ 27 - 19
packages/syncing-server/src/Domain/UseCase/Transition/TransitionItemsFromPrimaryToSecondaryDatabaseForUser/TransitionItemsFromPrimaryToSecondaryDatabaseForUser.ts

@@ -23,7 +23,7 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
   ) {}
 
   async execute(dto: TransitionItemsFromPrimaryToSecondaryDatabaseForUserDTO): Promise<Result<void>> {
-    this.logger.info(`[${dto.userUuid}] Transitioning items`)
+    this.logger.info(`[TRANSITION][${dto.userUuid}] Transitioning items`)
 
     if (this.secondaryItemRepository === null) {
       return Result.fail('Secondary item repository is not set')
@@ -40,7 +40,7 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
     const userUuid = userUuidOrError.getValue()
 
     if (await this.isAlreadyMigrated(userUuid)) {
-      this.logger.info(`[${userUuid.value}] User already migrated.`)
+      this.logger.info(`[TRANSITION][${userUuid.value}] User already migrated.`)
 
       await this.updateTransitionStatus(userUuid, TransitionStatus.STATUSES.Verified, dto.timestamp)
 
@@ -49,7 +49,7 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
 
     const migrationTimeStart = this.timer.getTimestampInMicroseconds()
 
-    this.logger.info(`[${dto.userUuid}] Migrating items`)
+    this.logger.info(`[TRANSITION][${dto.userUuid}] Migrating items`)
 
     const migrationResult = await this.migrateItemsForUser(userUuid, dto.timestamp)
     if (migrationResult.isFailed()) {
@@ -58,11 +58,11 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
       return Result.fail(migrationResult.getError())
     }
 
-    this.logger.info(`[${dto.userUuid}] Items migrated`)
+    this.logger.info(`[TRANSITION][${dto.userUuid}] Items migrated`)
 
     await this.allowForPrimaryDatabaseToCatchUp()
 
-    this.logger.info(`[${dto.userUuid}] Checking integrity between primary and secondary database`)
+    this.logger.info(`[TRANSITION][${dto.userUuid}] Checking integrity between primary and secondary database`)
 
     const integrityCheckResult = await this.checkIntegrityBetweenPrimaryAndSecondaryDatabase(userUuid)
     if (integrityCheckResult.isFailed()) {
@@ -81,7 +81,9 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
     if (cleanupResult.isFailed()) {
       await this.updateTransitionStatus(userUuid, TransitionStatus.STATUSES.Failed, dto.timestamp)
 
-      this.logger.error(`[${dto.userUuid}] Failed to clean up secondary database items: ${cleanupResult.getError()}`)
+      this.logger.error(
+        `[TRANSITION][${dto.userUuid}] Failed to clean up secondary database items: ${cleanupResult.getError()}`,
+      )
     }
 
     const migrationTimeEnd = this.timer.getTimestampInMicroseconds()
@@ -90,7 +92,7 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
     const migrationDurationTimeStructure = this.timer.convertMicrosecondsToTimeStructure(migrationDuration)
 
     this.logger.info(
-      `[${dto.userUuid}] Transitioned items in ${migrationDurationTimeStructure.hours}h ${migrationDurationTimeStructure.minutes}m ${migrationDurationTimeStructure.seconds}s ${migrationDurationTimeStructure.milliseconds}ms`,
+      `[TRANSITION][${dto.userUuid}] Transitioned items in ${migrationDurationTimeStructure.hours}h ${migrationDurationTimeStructure.minutes}m ${migrationDurationTimeStructure.seconds}s ${migrationDurationTimeStructure.milliseconds}ms`,
     )
 
     await this.updateTransitionStatus(userUuid, TransitionStatus.STATUSES.Verified, dto.timestamp)
@@ -109,14 +111,14 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
         userUuid.value,
       )
 
-      this.logger.info(`[${userUuid.value}] Migrating from page ${initialPage}`)
+      this.logger.info(`[TRANSITION][${userUuid.value}] Migrating from page ${initialPage}`)
 
       const totalItemsCountForUser = await (this.secondaryItemRepository as ItemRepositoryInterface).countAll({
         userUuid: userUuid.value,
       })
-      this.logger.info(`[${userUuid.value}] Total items count for user: ${totalItemsCountForUser}`)
+      this.logger.info(`[TRANSITION][${userUuid.value}] Total items count for user: ${totalItemsCountForUser}`)
       const totalPages = Math.ceil(totalItemsCountForUser / this.pageSize)
-      this.logger.info(`[${userUuid.value}] Total pages: ${totalPages}`)
+      this.logger.info(`[TRANSITION][${userUuid.value}] Total pages: ${totalPages}`)
       let insertedCount = 0
       let updatedCount = 0
       let newerCount = 0
@@ -125,10 +127,12 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
         const isPageInEvery10Percent = currentPage % Math.ceil(totalPages / 10) === 0
         if (isPageInEvery10Percent) {
           this.logger.info(
-            `[${userUuid.value}] Migrating items for user: ${Math.round((currentPage / totalPages) * 100)}% completed`,
+            `[TRANSITION][${userUuid.value}] Migrating items for user: ${Math.round(
+              (currentPage / totalPages) * 100,
+            )}% completed`,
           )
           this.logger.info(
-            `[${userUuid.value}] Inserted items count: ${insertedCount}. Newer items count: ${newerCount}. Identical items count: ${identicalCount}. Updated items count: ${updatedCount}`,
+            `[TRANSITION][${userUuid.value}] Inserted items count: ${insertedCount}. Newer items count: ${newerCount}. Identical items count: ${identicalCount}. Updated items count: ${updatedCount}`,
           )
           await this.updateTransitionStatus(userUuid, TransitionStatus.STATUSES.InProgress, timestamp)
         }
@@ -159,7 +163,7 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
             } else {
               if (itemInPrimary.props.timestamps.updatedAt > item.props.timestamps.updatedAt) {
                 this.logger.info(
-                  `[${userUuid.value}] Item ${item.uuid.value} is older in secondary than item in primary database`,
+                  `[TRANSITION][${userUuid.value}] Item ${item.uuid.value} is older in secondary than item in primary database`,
                 )
                 newerCount++
 
@@ -177,14 +181,16 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
             }
           } catch (error) {
             this.logger.error(
-              `Errored when saving item ${item.uuid.value} to primary database: ${(error as Error).message}`,
+              `[TRANSITION][${userUuid.value}] Errored when saving item ${item.uuid.value} to primary database: ${
+                (error as Error).message
+              }`,
             )
           }
         }
       }
 
       this.logger.info(
-        `[${userUuid.value}] Inserted items count: ${insertedCount}. Newer items count: ${newerCount}. Identical items count: ${identicalCount}. Updated items count: ${updatedCount}`,
+        `[TRANSITION][${userUuid.value}] Inserted items count: ${insertedCount}. Newer items count: ${newerCount}. Identical items count: ${identicalCount}. Updated items count: ${updatedCount}`,
       )
 
       return Result.ok()
@@ -195,7 +201,7 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
 
   private async deleteItemsForUser(userUuid: Uuid, itemRepository: ItemRepositoryInterface): Promise<Result<void>> {
     try {
-      this.logger.info(`[${userUuid.value}] Cleaning up primary database items`)
+      this.logger.info(`[TRANSITION][${userUuid.value}] Cleaning up primary database items`)
 
       await itemRepository.deleteByUserUuidAndNotInSharedVault(userUuid)
 
@@ -211,7 +217,7 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
         userUuid.value,
       )
 
-      this.logger.info(`[${userUuid.value}] Checking integrity from page ${initialPage}`)
+      this.logger.info(`[TRANSITION][${userUuid.value}] Checking integrity from page ${initialPage}`)
 
       const totalItemsCountForUserInSecondary = await (
         this.secondaryItemRepository as ItemRepositoryInterface
@@ -253,7 +259,7 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
 
           if (itemInPrimary.props.timestamps.updatedAt > item.props.timestamps.updatedAt) {
             this.logger.info(
-              `[${userUuid.value}] Integrity check of Item ${item.uuid.value} - is older in secondary than item in primary database`,
+              `[TRANSITION][${userUuid.value}] Integrity check of Item ${item.uuid.value} - is older in secondary than item in primary database`,
             )
 
             continue
@@ -296,7 +302,9 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
     })
 
     if (totalItemsCountForUserInSecondary > 0) {
-      this.logger.info(`[${userUuid.value}] User has ${totalItemsCountForUserInSecondary} items in secondary database.`)
+      this.logger.info(
+        `[TRANSITION][${userUuid.value}] User has ${totalItemsCountForUserInSecondary} items in secondary database.`,
+      )
     }
 
     return totalItemsCountForUserInSecondary === 0