feat(ui): add structured JSON logging to all server-side routes and lib

Introduces a logger.ts module emitting slog-compatible JSON lines to stderr.
Replaces silent catch blocks and console.error calls throughout minio.ts,
pocketbase.ts, hooks.server.ts, login, books, browse, and all API routes so
auth/registration failures, MinIO presign errors, and scraper proxy failures
are now visible in container logs.
This commit is contained in:
Admin
2026-03-03 14:34:48 +05:00
parent 5131ae0bc4
commit bf5774d8d0
13 changed files with 188 additions and 37 deletions

View File

@@ -1,6 +1,7 @@
import type { Handle } from '@sveltejs/kit';
import { randomBytes, createHmac } from 'node:crypto';
import { env } from '$env/dynamic/private';
import { log } from '$lib/server/logger';
const SESSION_COOKIE = 'libnovel_session';
const AUTH_COOKIE = 'libnovel_auth';
@@ -80,7 +81,15 @@ export const handle: Handle = async ({ event, resolve }) => {
// Auth cookie → resolve logged-in user
const authToken = event.cookies.get(AUTH_COOKIE);
event.locals.user = authToken ? parseAuthToken(authToken) : null;
if (authToken) {
const user = parseAuthToken(authToken);
if (!user) {
log.warn('auth', 'auth cookie present but failed to parse (malformed or tampered)');
}
event.locals.user = user;
} else {
event.locals.user = null;
}
return resolve(event);
};