Skip to content

Commit 8da63de

Browse files
committed
fix: improve error logging: use stringifyError()
1 parent 819eb16 commit 8da63de

File tree

26 files changed

+84
-64
lines changed

26 files changed

+84
-64
lines changed

meteor/client/ui/Settings/components/GenericDeviceSettingsComponent.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { JSONBlobParse } from '@sofie-automation/shared-lib/dist/lib/JSONBlob'
99
import { PeripheralDevices } from '../../../collections'
1010
import { MeteorCall } from '../../../../lib/api/methods'
1111
import { PeripheralDeviceId } from '@sofie-automation/corelib/dist/dataModel/Ids'
12+
import { stringifyError } from '@sofie-automation/shared-lib/dist/lib/stringifyError'
1213

1314
interface IGenericDeviceSettingsComponentProps {
1415
device: PeripheralDevice
@@ -39,7 +40,7 @@ export function GenericDeviceSettingsComponent({
3940
}
4041
setDebugStates(states)
4142
})
42-
.catch((err) => console.log(`Error fetching device states: ${err}`))
43+
.catch((err) => console.log(`Error fetching device states: ${stringifyError(err)}`))
4344
}, 1000)
4445

4546
return () => {

meteor/client/ui/Status/SystemStatus.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import { JSONBlobParse } from '@sofie-automation/shared-lib/dist/lib/JSONBlob'
4040
import { ClientAPI } from '../../../lib/api/client'
4141
import { catchError } from '../../lib/lib'
4242
import { logger } from '../../../lib/logging'
43+
import { stringifyError } from '@sofie-automation/shared-lib/dist/lib/stringifyError'
4344

4445
interface IDeviceItemProps {
4546
parentDevice: PeripheralDevice | null
@@ -595,7 +596,7 @@ export default translateWithTracker<ISystemStatusProps, ISystemStatusState, ISys
595596
deviceDebugState: states,
596597
})
597598
})
598-
.catch((err) => console.log(`Error fetching device states: ${err}`))
599+
.catch((err) => console.log(`Error fetching device states: ${stringifyError(err)}`))
599600
}
600601
}
601602
}

meteor/server/api/deviceTriggers/observer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { ReactiveCacheCollection } from '../../publications/lib/ReactiveCacheCol
1717
import { StudioDeviceTriggerManager } from './StudioDeviceTriggerManager'
1818
import { StudioObserver } from './StudioObserver'
1919
import { Studios } from '../../collections'
20+
import { stringifyError } from '@sofie-automation/shared-lib/dist/lib/stringifyError'
2021

2122
type ObserverAndManager = {
2223
observer: StudioObserver
@@ -34,8 +35,7 @@ Meteor.startup(() => {
3435

3536
function workInQueue(fnc: () => Promise<void>) {
3637
jobQueue.add(fnc).catch((e) => {
37-
logger.error(`Error in DeviceTriggers Studio observer reaction: ${e}`)
38-
logger.error(e)
38+
logger.error(`Error in DeviceTriggers Studio observer reaction: ${stringifyError(e)}`)
3939
})
4040
}
4141

meteor/server/api/ingest/lib.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,6 @@ function updateDeviceLastDataReceived(deviceId: PeripheralDeviceId) {
139139
lastDataReceived: getCurrentTime(),
140140
},
141141
}).catch((err) => {
142-
logger.error(`Error in updateDeviceLastDataReceived "${deviceId}": ${err}`)
142+
logger.error(`Error in updateDeviceLastDataReceived "${deviceId}": ${stringifyError(err)}`)
143143
})
144144
}

meteor/server/api/ingest/packageInfo.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { logger } from '../../logging'
66
import { runIngestOperation } from './lib'
77
import { IngestJobs } from '@sofie-automation/corelib/dist/worker/ingest'
88
import { ExpectedPackageId, RundownId } from '@sofie-automation/corelib/dist/dataModel/Ids'
9+
import { stringifyError } from '@sofie-automation/shared-lib/dist/lib/stringifyError'
910

1011
export async function onUpdatedPackageInfo(packageId: ExpectedPackageId, _doc: PackageInfoDB | null): Promise<void> {
1112
logger.info(`PackageInfo updated "${packageId}"`)
@@ -40,7 +41,11 @@ export async function onUpdatedPackageInfo(packageId: ExpectedPackageId, _doc: P
4041
if (packageIds) {
4142
pendingPackageUpdates.delete(pkg.rundownId)
4243
onUpdatedPackageInfoForRundown(pkg.rundownId, packageIds).catch((e) => {
43-
logger.error(`Updating ExpectedPackages for Rundown "${pkg.rundownId}" failed: ${e}`)
44+
logger.error(
45+
`Updating ExpectedPackages for Rundown "${pkg.rundownId}" failed: ${stringifyError(
46+
e
47+
)}`
48+
)
4449
})
4550
}
4651
},

meteor/server/api/peripheralDevice/executeFunction.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { createManualPromise, getCurrentTime, getRandomId } from '../../../lib/l
44
import { PeripheralDeviceCommands } from '../../collections'
55
import { logger } from '../../logging'
66
import { TSR } from '@sofie-automation/blueprints-integration'
7+
import { stringifyError } from '@sofie-automation/shared-lib/dist/lib/stringifyError'
78

89
export async function executePeripheralDeviceFunctionWithCustomTimeout(
910
deviceId: PeripheralDeviceId,
@@ -70,7 +71,9 @@ export async function executePeripheralDeviceFunctionWithCustomTimeout(
7071

7172
observer?.stop()
7273
PeripheralDeviceCommands.removeAsync(cmdId).catch((e) => {
73-
logger.error(`Cleanup PeripheralDeviceCommand "${commandId}" document failed: ${e}`)
74+
logger.error(
75+
`Cleanup PeripheralDeviceCommand "${commandId}" document failed: ${stringifyError(e)}`
76+
)
7477
})
7578
}
7679

@@ -118,7 +121,7 @@ export async function executePeripheralDeviceFunctionWithCustomTimeout(
118121

119122
const doCheckReply = () => {
120123
checkReply().catch((e) => {
121-
logger.error(`PeripheralDeviceCommand "${commandId}" check failed: ${e}`)
124+
logger.error(`PeripheralDeviceCommand "${commandId}" check failed: ${stringifyError(e)}`)
122125
})
123126
}
124127

meteor/server/api/system.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import { TranslationsBundleId } from '@sofie-automation/corelib/dist/dataModel/I
2626
import { createAsyncOnlyMongoCollection, AsyncOnlyMongoCollection } from '../collections/collection'
2727
import { generateToken } from './singleUseTokens'
2828
import { triggerWriteAccessBecauseNoCheckNecessary } from '../security/lib/securityVerify'
29+
import { stringifyError } from '@sofie-automation/shared-lib/dist/lib/stringifyError'
2930

3031
async function setupIndexes(removeOldIndexes = false): Promise<Array<IndexSpecification>> {
3132
// Note: This function should NOT run on Meteor.startup, due to getCollectionIndexes failing if run before indexes have been created.
@@ -54,7 +55,9 @@ async function setupIndexes(removeOldIndexes = false): Promise<Array<IndexSpecif
5455
if (removeOldIndexes) {
5556
logger.info(`Removing index: ${JSON.stringify(existingIndex.key)}`)
5657
rawCollection.dropIndex(existingIndex.name).catch((e) => {
57-
logger.warn(`Failed to drop index: ${JSON.stringify(existingIndex.key)}: ${e}`)
58+
logger.warn(
59+
`Failed to drop index: ${JSON.stringify(existingIndex.key)}: ${stringifyError(e)}`
60+
)
5861
})
5962
}
6063
}

meteor/server/api/systemTime/ntpTimeChecker.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { StatusCode } from '@sofie-automation/blueprints-integration'
44
import { setSystemStatus } from '../../systemStatus/systemStatus'
55
import { logger } from '../../logging'
66
import { determineDiffTime } from './systemTime'
7+
import { stringifyError } from '@sofie-automation/shared-lib/dist/lib/stringifyError'
78

89
const CHECK_INTERVAL = 60 * 1000
910

@@ -37,7 +38,7 @@ Meteor.startup(() => {
3738
}
3839
})
3940
.catch((err) => {
40-
logger.error(`Error in determineDiffTime: ${err}`)
41+
logger.error(`Error in determineDiffTime: ${stringifyError(err)}`)
4142
failCount++
4243
if (failCount > 10) {
4344
setSystemStatus('ntpTimeChecker', {

meteor/server/coreSystem/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ export const RelevantSystemVersions = PLazy.from(async () => {
118118
const pkgInfo = require(name + '/package.json')
119119
return pkgInfo.version
120120
} catch (e) {
121-
logger.warn(`Failed to read version of package "${name}": ${e}`)
121+
logger.warn(`Failed to read version of package "${name}": ${stringifyError(e)}`)
122122
return parseVersion(fallback)
123123
}
124124
}

meteor/server/cronjobs.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,14 @@ export async function nightlyCronjobInner(): Promise<void> {
5151

5252
await Promise.allSettled([
5353
cleanupOldDataCronjob().catch((error) => {
54-
logger.error(`Cronjob: Error when cleaning up old data: ${error}`)
54+
logger.error(`Cronjob: Error when cleaning up old data: ${stringifyError(error)}`)
5555
logger.error(error)
5656
}),
5757
restartCasparCG(system, previousLastNightlyCronjob).catch((e) => {
58-
logger.error(`Cron: Restart CasparCG error: ${e}`)
58+
logger.error(`Cron: Restart CasparCG error: ${stringifyError(e)}`)
5959
}),
6060
storeSnapshots(system).catch((e) => {
61-
logger.error(`Cron: Rundown Snapshots error: ${e}`)
61+
logger.error(`Cron: Rundown Snapshots error: ${stringifyError(e)}`)
6262
}),
6363
])
6464

@@ -202,7 +202,7 @@ Meteor.startup(() => {
202202
timeSinceLast > 20 * 3600 * 1000 // was last run yesterday
203203
) {
204204
nightlyCronjobInner().catch((e) => {
205-
logger.error(`Nightly cronjob: error: ${e}`)
205+
logger.error(`Nightly cronjob: error: ${stringifyError(e)}`)
206206
})
207207
}
208208
}
@@ -225,7 +225,7 @@ Meteor.startup(() => {
225225
)
226226
},
227227
(e) => {
228-
logger.error(`Cron: CleanupPlaylists error: ${e}`)
228+
logger.error(`Cron: CleanupPlaylists error: ${stringifyError(e)}`)
229229
}
230230
)
231231
}

0 commit comments

Comments
 (0)