import pino from "pino"; import { dev } from "$app/environment"; import { config } from "$lib/server/config"; import { getRequestContext } from "$lib/server/requestContext"; let options: pino.LoggerOptions = {}; if (dev) { options = { transport: { target: "pino-pretty", options: { colorize: true, }, }, }; } const baseLogger = pino({ ...options, messageKey: "message", level: config.LOG_LEVEL || "info", formatters: { level: (label) => { return { level: label }; }, }, mixin() { const ctx = getRequestContext(); if (!ctx) return {}; const result: Record = {}; if (ctx.requestId) result.request_id = ctx.requestId; if (ctx.url) result.url = ctx.url; if (ctx.ip) result.ip = ctx.ip; if (ctx.user) result.user = ctx.user; if (ctx.statusCode) result.status_code = ctx.statusCode; return result; }, }); export const logger = baseLogger;