Log production-data query failures (with stack) and slow queries

This commit is contained in:
Misaka_Company
2026-06-24 13:39:17 +08:00
parent 2a5f5763b4
commit 3371a8af2a

View File

@@ -1,5 +1,8 @@
import { NextRequest, NextResponse } from "next/server";
import sql from "mssql";
import { apiLogger, formatError } from "../../../server/logger";
const SLOW_QUERY_MS = 3000;
const dbConfig = {
server: process.env.DB_SERVER!,
@@ -25,6 +28,7 @@ export async function GET(request: NextRequest) {
}
let pool: sql.ConnectionPool | undefined;
const t0 = Date.now();
try {
pool = await sql.connect(dbConfig);
const result = await pool
@@ -53,10 +57,15 @@ export async function GET(request: NextRequest) {
return serialized;
});
const dur = Date.now() - t0;
if (dur > SLOW_QUERY_MS) {
apiLogger.warn(`slow query · workshopNo=${workshopNo} · dur=${dur}ms · rows=${data.length}`);
}
return NextResponse.json({ columns, data, total: data.length });
} catch (err) {
const dur = Date.now() - t0;
const message = err instanceof Error ? err.message : "Unknown error";
console.error("DB query error:", message);
apiLogger.error(`query failed · workshopNo=${workshopNo} · dur=${dur}ms · ${formatError(err)}`);
return NextResponse.json({ error: message }, { status: 500 });
} finally {
if (pool) {