Fix crash handling and log noise in logging feature
Review of the logging work from the previous commit turned up a real correctness issue: the uncaughtException/unhandledRejection handlers logged the error but let the process keep running, which silently disabled Node's default crash-on-fatal-error behavior and could leave a zombie process serving broken requests instead of restarting. Both processes now log and then exit(1); restart: unless-stopped is added to both services so Docker actually brings them back up. Also: harden the logger against JSON.stringify throwing on non-serializable meta, log aborted (closed-before-finished) requests in the API access log, and stop the Next.js proxy from logging the Docker healthcheck's request to "/" every few seconds so real navigation events aren't drowned out. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
ea3c02cd6b
commit
fa96be2d42
6 changed files with 49 additions and 15 deletions
|
|
@ -47,13 +47,19 @@ export function createLogger(
|
|||
if (LEVEL_SEVERITY[level] > LEVEL_SEVERITY[threshold]) {
|
||||
return;
|
||||
}
|
||||
const line = JSON.stringify({
|
||||
timestamp: new Date().toISOString(),
|
||||
level,
|
||||
scope,
|
||||
message,
|
||||
...meta,
|
||||
});
|
||||
const timestamp = new Date().toISOString();
|
||||
let line: string;
|
||||
try {
|
||||
line = JSON.stringify({ timestamp, level, scope, message, ...meta });
|
||||
} catch {
|
||||
line = JSON.stringify({
|
||||
timestamp,
|
||||
level,
|
||||
scope,
|
||||
message,
|
||||
logError: "failed to serialize log metadata",
|
||||
});
|
||||
}
|
||||
if (level === "error" || level === "warn") {
|
||||
console.error(line);
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue