From f580cfad016f9467dd5b77bbab2d40a80a89f29f Mon Sep 17 00:00:00 2001 From: Derek Kershner <25798427+dkershner6@users.noreply.github.com> Date: Thu, 9 Nov 2023 08:58:54 -0800 Subject: [PATCH] fix: Just reducing error log spam a bit (#306) * fix: Just reducing error log spam a bit --- packages/open-next/src/adapters/cache.ts | 4 +-- packages/open-next/src/adapters/logger.ts | 37 +++++++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/packages/open-next/src/adapters/cache.ts b/packages/open-next/src/adapters/cache.ts index 55a09f99..437f3d8c 100644 --- a/packages/open-next/src/adapters/cache.ts +++ b/packages/open-next/src/adapters/cache.ts @@ -234,7 +234,7 @@ export default class S3Cache { }, } as CacheHandlerValue; } else { - error("Unknown cache type", cacheData); + warn("Unknown cache type", cacheData); return null; } } catch (e) { @@ -490,7 +490,7 @@ export default class S3Cache { ); return result; } catch (e) { - error("This error can usually be ignored : ", e); + warn("This error can usually be ignored : ", e); return { Body: null, LastModified: null }; } } diff --git a/packages/open-next/src/adapters/logger.ts b/packages/open-next/src/adapters/logger.ts index a2e37e84..f09666ae 100644 --- a/packages/open-next/src/adapters/logger.ts +++ b/packages/open-next/src/adapters/logger.ts @@ -12,7 +12,44 @@ export function warn(...args: any[]) { console.warn(...args); } +interface AwsSdkClientCommandErrorLog { + clientName: string; + commandName: string; + error: Error & { Code?: string }; +} + +type AwsSdkClientCommandErrorInput = Pick< + AwsSdkClientCommandErrorLog, + "clientName" | "commandName" +> & { + errorName: string; +}; + +const DOWNPLAYED_ERROR_LOGS: AwsSdkClientCommandErrorInput[] = [ + { + clientName: "S3Client", + commandName: "GetObjectCommand", + errorName: "NoSuchKey", + }, +]; + +const isDownplayedErrorLog = (errorLog: AwsSdkClientCommandErrorLog) => + DOWNPLAYED_ERROR_LOGS.some( + (downplayedInput) => + downplayedInput.clientName === errorLog?.clientName && + downplayedInput.commandName === errorLog?.commandName && + (downplayedInput.errorName === errorLog?.error?.name || + downplayedInput.errorName === errorLog?.error?.Code), + ); + export function error(...args: any[]) { + if ( + args.some((arg: AwsSdkClientCommandErrorLog) => isDownplayedErrorLog(arg)) + ) { + warn(...args); + return; + } + console.error(...args); }