diff --git a/packages/api/src/utils/logger.ts b/packages/api/src/utils/logger.ts index 5cbc6e1cf..fdfa12832 100644 --- a/packages/api/src/utils/logger.ts +++ b/packages/api/src/utils/logger.ts @@ -97,18 +97,23 @@ function localConfig(id: string): ConsoleTransportOptions { const truncateObjectDeep = (object: any, length: number): any => { const copyObj = cloneDeep(object) as never - const truncateDeep = (obj: any): any => { + const truncateDeep = (obj: any, level: number): any => { + // reach maximum call stack size + if (level >= 6) { + return obj + } + if (isString(obj) && obj.length > length) { return `${truncate(obj, { length })} [truncated]` } if (isArray(obj)) { - return obj.map((i) => truncateDeep(i) as never) + return obj.map((i) => truncateDeep(i, level + 1) as never) } if (isObject(obj)) { Object.entries(obj).forEach(([key, value]) => { - obj[key as keyof typeof obj] = truncateDeep(value) as never + obj[key as keyof typeof obj] = truncateDeep(value, level + 1) as never }) return obj @@ -118,7 +123,7 @@ const truncateObjectDeep = (object: any, length: number): any => { return obj } - return truncateDeep(copyObj) + return truncateDeep(copyObj, 1) } class GcpLoggingTransport extends LoggingWinston {