feat: add heartbeat check for bug report API and enhance logging throughout the application
This commit is contained in:
@@ -4,6 +4,10 @@ import { runMigrations } from "./db/migrate";
|
||||
import { closePool } from "./db/connection";
|
||||
import { bugReportRoutes } from "./routes/bugReports";
|
||||
import { adminRoutes } from "./routes/admin";
|
||||
import { initLogger, Log } from "./logger";
|
||||
|
||||
// Initialize logger
|
||||
initLogger();
|
||||
|
||||
// Validate environment
|
||||
validateConfig();
|
||||
@@ -12,8 +16,20 @@ validateConfig();
|
||||
await runMigrations();
|
||||
|
||||
const app = new Elysia()
|
||||
.onRequest(({ request }) => {
|
||||
const url = new URL(request.url);
|
||||
const ip =
|
||||
request.headers.get("x-forwarded-for")?.split(",")[0]?.trim() ||
|
||||
request.headers.get("x-real-ip") ||
|
||||
"unknown";
|
||||
Log("HTTP", `${request.method} ${url.pathname} from ${ip}`);
|
||||
})
|
||||
.onAfterResponse(({ request, set }) => {
|
||||
const url = new URL(request.url);
|
||||
Log("HTTP", `${request.method} ${url.pathname} -> ${set.status ?? 200}`);
|
||||
})
|
||||
.onError(({ error, set }) => {
|
||||
console.error("Unhandled error:", error);
|
||||
Log("ERROR", "Unhandled error:", error);
|
||||
set.status = 500;
|
||||
return { success: false, message: "Internal server error" };
|
||||
})
|
||||
@@ -25,19 +41,20 @@ const app = new Elysia()
|
||||
maxBody: 50 * 1024 * 1024, // 50MB
|
||||
});
|
||||
|
||||
console.log(
|
||||
Log(
|
||||
"SERVER",
|
||||
`EMLy Bug Report API running on http://localhost:${app.server?.port}`
|
||||
);
|
||||
|
||||
// Graceful shutdown
|
||||
process.on("SIGINT", async () => {
|
||||
console.log("Shutting down...");
|
||||
Log("SERVER", "Shutting down (SIGINT)...");
|
||||
await closePool();
|
||||
process.exit(0);
|
||||
});
|
||||
|
||||
process.on("SIGTERM", async () => {
|
||||
console.log("Shutting down...");
|
||||
Log("SERVER", "Shutting down (SIGTERM)...");
|
||||
await closePool();
|
||||
process.exit(0);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user