Skip to content

Commit cdcac68

Browse files
committed
debug
1 parent b39aab3 commit cdcac68

File tree

1 file changed

+63
-2
lines changed

1 file changed

+63
-2
lines changed

src/server/index.ts

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,75 @@ import { warmAllCaches } from "./jobs/warmCache";
2020

2121
dotenv.config();
2222

23+
const debugLevel = Number(process.env.LLAMA_DEBUG_LEVEL ?? "0");
24+
const requestDebugEnabled = process.env.FASTIFY_REQUEST_DEBUG === "1" || debugLevel >= 3;
25+
const verboseRequestDebugEnabled = process.env.FASTIFY_REQUEST_DEBUG_VERBOSE === "1" || debugLevel >= 4;
26+
2327
const server: FastifyInstance = fastify({
24-
logger: true,
28+
logger: {
29+
level: requestDebugEnabled ? "debug" : "info",
30+
},
2531
connectionTimeout: 60000,
2632
keepAliveTimeout: 65000,
2733
});
2834

29-
server.addHook("onRequest", async (_, reply) => {
35+
server.addHook("onRequest", async (request: any, reply) => {
36+
request.requestStartTime = Date.now();
3037
reply.raw.setTimeout(55000);
38+
if (requestDebugEnabled) {
39+
request.log.info(
40+
{
41+
reqId: request.id,
42+
method: request.method,
43+
url: request.url,
44+
routePath: request.routeOptions?.url,
45+
params: request.params,
46+
query: request.query,
47+
},
48+
"request:start"
49+
);
50+
}
51+
});
52+
53+
server.addHook("onResponse", async (request: any, reply) => {
54+
if (!requestDebugEnabled) {
55+
return;
56+
}
57+
const durationMs = typeof request.requestStartTime === "number" ? Date.now() - request.requestStartTime : undefined;
58+
const payload = {
59+
reqId: request.id,
60+
method: request.method,
61+
url: request.url,
62+
routePath: request.routeOptions?.url,
63+
statusCode: reply.statusCode,
64+
durationMs,
65+
} as any;
66+
if (verboseRequestDebugEnabled) {
67+
payload.params = request.params;
68+
payload.query = request.query;
69+
}
70+
request.log.info(payload, "request:done");
71+
});
72+
73+
server.addHook("onError", async (request: any, reply, error) => {
74+
if (!requestDebugEnabled) {
75+
return;
76+
}
77+
const durationMs = typeof request.requestStartTime === "number" ? Date.now() - request.requestStartTime : undefined;
78+
request.log.error(
79+
{
80+
reqId: request.id,
81+
method: request.method,
82+
url: request.url,
83+
routePath: request.routeOptions?.url,
84+
statusCode: reply.statusCode,
85+
durationMs,
86+
params: request.params,
87+
query: request.query,
88+
err: error,
89+
},
90+
"request:error"
91+
);
3192
});
3293

3394
const lambdaToFastify = (handler: Function) => async (request: any, reply: any) => {

0 commit comments

Comments
 (0)