diff --git a/components/FlexibleContent/Modules/CopyAndImage/CopyAndImage.tsx b/components/FlexibleContent/Modules/CopyAndImage/CopyAndImage.tsx index a18c7ab..da380c2 100644 --- a/components/FlexibleContent/Modules/CopyAndImage/CopyAndImage.tsx +++ b/components/FlexibleContent/Modules/CopyAndImage/CopyAndImage.tsx @@ -4,6 +4,7 @@ import Button from '@/components/Button/Button'; import CMSImageBox from '@/components/ImageBox/CMSImageBox'; import { AnimatedElement } from '@/components/AnimatedComponent/AnimatedComponent'; +import { log } from '@/lib/logger'; import type { SanityImage } from '@/lib/sanity.image'; import type { ButtonSchemaType } from '@/schemas/objects/button'; import clsx from 'clsx'; @@ -26,8 +27,7 @@ export default function CopyAndImage(props: CopyAndImageProps) { props; if (!mobileAlignment || !desktopAlignment) { - // eslint-disable-next-line no-console - console.warn( + log.warn( '@deprecated A CopyAndImage component is using a depricated schema field. Please update the schema.' ); return ; diff --git a/components/FlexibleContent/Modules/Hero/Hero.tsx b/components/FlexibleContent/Modules/Hero/Hero.tsx index 20743c0..3be221f 100644 --- a/components/FlexibleContent/Modules/Hero/Hero.tsx +++ b/components/FlexibleContent/Modules/Hero/Hero.tsx @@ -11,6 +11,7 @@ import { import Button from '@/components/Button/Button'; import ScrollButton from '@/components/Button/ScrollButton'; import SplineModel from '@/components/SplineScene/SplineScene'; +import { log } from '@/lib/logger'; import type { HeroSchemaType, HeroVariantType, @@ -41,8 +42,7 @@ export default function Hero(props: HeroSchemaType) { // TODO - Remove DepricatedHero support when all heros are updated if (!_variant || !image) { - // eslint-disable-next-line no-console - console.warn( + log.warn( '@deprecated A Hero component is using a depricated schema field. Please update the schema.' ); diff --git a/components/FlexibleContent/Modules/StatsTiles/StatsTilesServer.tsx b/components/FlexibleContent/Modules/StatsTiles/StatsTilesServer.tsx index ac5eb62..63b0571 100644 --- a/components/FlexibleContent/Modules/StatsTiles/StatsTilesServer.tsx +++ b/components/FlexibleContent/Modules/StatsTiles/StatsTilesServer.tsx @@ -1,4 +1,5 @@ import { REVALIDATIONS } from '@/lib/constants'; +import { log } from '@/lib/logger'; import StatsTiles from './StatsTiles'; async function getData(): Promise { @@ -21,8 +22,7 @@ async function getData(): Promise { const { nodeCount } = await response.json(); return String(nodeCount); } catch (err) { - // eslint-disable-next-line no-console - console.error(`internal ${response?.status || ''} error from Data API. Error ${err}`); + log.error(`internal ${response?.status || ''} error from Data API. Error ${err}`); return null; } } diff --git a/lib/logger.ts b/lib/logger.ts index 681403a..b6c7350 100644 --- a/lib/logger.ts +++ b/lib/logger.ts @@ -3,16 +3,24 @@ import { isProduction } from './env'; class Logger { static debugEnabled = !isProduction() && process.env.DEBUG_LOG === 'true'; + + private getTimestamp(): string { + return new Date().toISOString(); + } + public debug(message: string, ...args: Array) { if (Logger.debugEnabled) { - console.debug(message, ...args); + console.debug(`[${this.getTimestamp()}] ${message}`, ...args); } } public info(message: string, ...args: Array) { - console.info(message, ...args); + console.info(`[${this.getTimestamp()}] ${message}`, ...args); } public error(message: string, ...args: Array) { - console.error(message, ...args); + console.error(`[${this.getTimestamp()}] ${message}`, ...args); + } + public warn(message: string, ...args: Array) { + console.warn(`[${this.getTimestamp()}] ${message}`, ...args); } }