diff options
author | Eric Bailey <git@esb.lol> | 2023-11-27 12:28:21 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-27 10:28:21 -0800 |
commit | 1dc017367edf08352284cb9a2e0d5b75d5d93691 (patch) | |
tree | 1db651058c8c914010b36ac50bfe2256cc466829 /src/logger/index.ts | |
parent | 675875531623750d0063db0aff8ec2580461e20b (diff) | |
download | voidsky-1dc017367edf08352284cb9a2e0d5b75d5d93691.tar.zst |
Make sure logger serializes errors (#2001)
Diffstat (limited to 'src/logger/index.ts')
-rw-r--r-- | src/logger/index.ts | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/logger/index.ts b/src/logger/index.ts index 3de2b9046..9f79a7812 100644 --- a/src/logger/index.ts +++ b/src/logger/index.ts @@ -90,6 +90,16 @@ const enabledLogLevels: { [LogLevel.Error]: [LogLevel.Error], } +export function prepareMetadata(metadata: Metadata): Metadata { + return Object.keys(metadata).reduce((acc, key) => { + let value = metadata[key] + if (value instanceof Error) { + value = value.toString() + } + return {...acc, [key]: value} + }, {}) +} + /** * Used in dev mode to nicely log to the console */ @@ -100,7 +110,8 @@ export const consoleTransport: Transport = ( timestamp, ) => { const extra = Object.keys(metadata).length - ? ' ' + JSON.stringify(metadata, null, ' ') + ? // don't prepareMetadata here, in dev we want the stack trace + ' ' + JSON.stringify(metadata, null, ' ') : '' const log = { [LogLevel.Debug]: console.debug, @@ -119,6 +130,8 @@ export const sentryTransport: Transport = ( {type, tags, ...metadata}, timestamp, ) => { + const meta = prepareMetadata(metadata) + /** * If a string, report a breadcrumb */ @@ -135,7 +148,7 @@ export const sentryTransport: Transport = ( Sentry.addBreadcrumb({ message, - data: metadata, + data: meta, type: type || 'default', level: severity, timestamp: timestamp / 1000, // Sentry expects seconds @@ -155,7 +168,7 @@ export const sentryTransport: Transport = ( Sentry.captureMessage(message, { level: messageLevel, tags, - extra: metadata, + extra: meta, }) } } else { @@ -164,7 +177,7 @@ export const sentryTransport: Transport = ( */ Sentry.captureException(message, { tags, - extra: metadata, + extra: meta, }) } } |