Skip to content

Commit 67ca357

Browse files
author
moggr
authored
Datadog logs (base#928)
* Add data dog logging on APIs * removing error message from response
1 parent 2b8fcb3 commit 67ca357

File tree

23 files changed

+132
-24
lines changed

23 files changed

+132
-24
lines changed

apps/web/app/AppProviders.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import ClientAnalyticsScript from 'apps/web/src/components/ClientAnalyticsScript
3030
import dynamic from 'next/dynamic';
3131
import ErrorsProvider from 'apps/web/contexts/Errors';
3232
import { isDevelopment } from 'apps/web/src/constants';
33+
import { logger } from 'apps/web/src/utils/logger';
3334

3435
const DynamicCookieBannerWrapper = dynamic(
3536
async () => import('apps/web/src/components/CookieBannerWrapper'),
@@ -104,7 +105,7 @@ export default function AppProviders({ children }: AppProvidersProps) {
104105
}
105106
}, []);
106107

107-
const handleLogError = useCallback((err: Error) => console.error(err), []);
108+
const handleLogError = useCallback((err: Error) => logger.error(err), []);
108109

109110
useSprig(sprigEnvironmentId);
110111

@@ -114,7 +115,7 @@ export default function AppProviders({ children }: AppProvidersProps) {
114115
projectName="base_web"
115116
locale="en"
116117
region={Region.DEFAULT}
117-
log={console.log}
118+
log={logger.info}
118119
onError={handleLogError}
119120
onPreferenceChange={setTrackingPreference}
120121
config={cookieManagerConfig}

apps/web/app/datadog.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
import { datadogRum } from '@datadog/browser-rum';
55
import { isDevelopment } from 'apps/web/src/constants';
6+
import { logger } from 'apps/web/src/utils/logger';
67
import { useEffect } from 'react';
78

89
const nextPublicDatadogAppId = process.env.NEXT_PUBLIC_DATADOG_APP_ID ?? '';
@@ -14,7 +15,7 @@ export default function DatadogInit() {
1415
if (isDevelopment) return;
1516

1617
if (!nextPublicDatadogAppId || !nextPublicDatadogClientToken) {
17-
console.warn('Datadog is not configured');
18+
logger.warn('Datadog is not configured');
1819
return;
1920
}
2021
datadogRum.init({

apps/web/contexts/Errors.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import { datadogRum } from '@datadog/browser-rum';
44
import { isDevelopment } from 'apps/web/src/constants';
5+
import { logger } from 'apps/web/src/utils/logger';
56
import { ReactNode, createContext, useCallback, useContext, useMemo } from 'react';
67

78
export type ErrorsContextProps = {
@@ -43,6 +44,11 @@ export default function ErrorsProvider({ children, context }: ErrorsProviderProp
4344
console.info(`Context: "${fullContext}"`);
4445
console.log('--------------------------------------\n');
4546
return;
47+
} else {
48+
logger.error(`Error caught with message: "${message}"`, {
49+
context: fullContext,
50+
message: message,
51+
});
4652
}
4753
datadogRum.addError(error, { context: fullContext, message: message });
4854
},

apps/web/next.config.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,6 @@ module.exports = extendBaseConfig(
184184
},
185185
],
186186
});
187-
188187
config.externals.push('pino-pretty');
189188
return config;
190189
},

apps/web/pages/api/basenames/[name]/getBasenameRegistrationPrice.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
} from 'apps/web/src/utils/usernames';
99
import { weiToEth } from 'apps/web/src/utils/weiToEth';
1010
import { formatWei } from 'apps/web/src/utils/formatWei';
11+
import { logger } from 'apps/web/src/utils/logger';
1112

1213
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
1314
const { name, years } = req.query;
@@ -22,7 +23,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
2223
const registrationPriceInEth = weiToEth(registrationPrice).toString();
2324
return res.status(200).json({ registrationPriceInWei, registrationPriceInEth });
2425
} catch (error) {
25-
console.error('Could not get registration price: ', error);
26+
logger.error('Could not get registration price: ', error);
2627
return res.status(500).json(error);
2728
}
2829
}
@@ -46,7 +47,7 @@ async function getBasenameRegistrationPrice(name: string, years: number): Promis
4647
});
4748
return price;
4849
} catch (error) {
49-
console.error('Could not get claim price:', error);
50+
logger.error('Could not get claim price:', error);
5051
return null;
5152
}
5253
}

apps/web/pages/api/basenames/frame/01_inputSearchValue.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { NextApiRequest, NextApiResponse } from 'next/dist/shared/lib/utils';
22
import { inputSearchValueFrame } from 'apps/web/pages/api/basenames/frame/frameResponses';
3+
import { logger } from 'apps/web/src/utils/logger';
34

45
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
56
if (req.method !== 'POST') {
@@ -9,7 +10,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
910
try {
1011
return res.status(200).setHeader('Content-Type', 'text/html').send(inputSearchValueFrame);
1112
} catch (error) {
12-
console.error('Could not process request:', error);
13+
logger.error('Could not process request:', error);
1314
return res.status(500).json({ error: 'Internal Server Error' });
1415
}
1516
}

apps/web/pages/api/basenames/metadata/[tokenId].ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import L2Resolver from 'apps/web/src/abis/L2Resolver';
33
import { USERNAME_L2_RESOLVER_ADDRESSES } from 'apps/web/src/addresses/usernames';
44
import { isDevelopment } from 'apps/web/src/constants';
55
import { getBasenamePublicClient } from 'apps/web/src/hooks/useBasenameChain';
6+
import { logger } from 'apps/web/src/utils/logger';
67
import { formatBaseEthDomain, USERNAME_DOMAINS } from 'apps/web/src/utils/usernames';
78
import { NextResponse } from 'next/server';
89
import { encodePacked, keccak256, namehash, toHex } from 'viem';
@@ -45,7 +46,7 @@ export default async function GET(request: Request) {
4546
functionName: 'name',
4647
});
4748
} catch (error) {
48-
console.log(error);
49+
logger.error(error);
4950
}
5051

5152
// Premints are hardcoded, the list will reduce when/if they get claimed

apps/web/pages/api/basenames/talentprotocol/[address].ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { logger } from 'apps/web/src/utils/logger';
12
import type { NextApiRequest, NextApiResponse } from 'next';
23

34
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
@@ -28,7 +29,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
2829
return res.status(200).json(data);
2930
}
3031
} catch (error) {
31-
console.error(error);
32+
logger.error(error);
3233
}
3334

3435
return res.status(404).json({ error: 'address not found' });

apps/web/pages/api/checkNftProof/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { NextApiRequest, NextApiResponse } from 'next';
22
import { kv } from '@vercel/kv';
3+
import { logger } from 'apps/web/src/utils/logger';
34

45
type RequestBody = {
56
address: `0x${string}`;
@@ -19,7 +20,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
1920
return res.status(200).json({ result: proof });
2021
}
2122
} catch (error) {
22-
console.error(error);
23+
logger.error(error);
2324
}
2425

2526
return res.status(404).json({ error: 'address is not eligible for the nft' });

apps/web/pages/api/name/[alreadyClaimedName].ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { queryCbGpt } from 'apps/web/src/cdp/api/cb-gpt';
2+
import { logger } from 'apps/web/src/utils/logger';
23
import { NextApiRequest, NextApiResponse } from 'next';
34

45
export type NameSuggestionResponseData = {
@@ -58,9 +59,9 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
5859
});
5960
res.status(200).json({ suggestion: JSON.parse(suggestion.response) as string[] });
6061
} catch (e) {
61-
console.error(e);
6262
if (e instanceof Error) {
63-
res.status(500).json({ error: `failed to generate suggestions ${e.message}` });
63+
logger.error(e);
64+
res.status(500).json({ error: `failed to generate suggestions` });
6465
}
6566
}
6667
}

0 commit comments

Comments
 (0)