Tovább a tartalomhoz

Naplózás

Az ElyOS saját naplózási rendszert használ, amely több célra (konzol, fájl, adatbázis) tud egyszerre írni. A naplók a beépített Log alkalmazásban tekinthetők meg.

import { logger } from '$lib/server/logging';
logger.debug('Részletes debug információ', { extra: 'adat' });
logger.info('Általános információ');
logger.warn('Figyelmeztetés', { context: 'valami' });
logger.error('Hiba történt', { error: err });
logger.fatal('Kritikus hiba', { error: err });

A logger strukturált adatokat fogad el második paraméterként:

logger.info('Felhasználó bejelentkezett', {
userId: user.id,
email: user.email,
ip: event.getClientAddress()
});
logger.error('Adatbázis hiba', {
operation: 'findUser',
userId: id,
error: error.message
});
import { command, getRequestEvent } from '$app/server';
import { logger } from '$lib/server/logging';
export const myAction = command(schema, async (input) => {
const { locals } = getRequestEvent();
logger.info('Akció végrehajtva', {
action: 'myAction',
userId: locals.user?.id,
input
});
try {
// ... logika
return { success: true };
} catch (error) {
logger.error('Akció sikertelen', {
action: 'myAction',
error: error instanceof Error ? error.message : String(error)
});
return { success: false, error: 'Belső hiba' };
}
});

A naplózás a .env fájlban konfigurálható:

VáltozóAlapértelmezettLeírás
LOG_TARGETSconsoleVesszővel elválasztott célok: console, file, database
LOG_LEVELerrorMinimális szint: debug, info, warn, error, fatal
LOG_DIR./logsNaplófájlok könyvtára (ha file cél aktív)
Terminál
LOG_TARGETS=console
LOG_LEVEL=debug
Terminál
LOG_TARGETS=console,database
LOG_LEVEL=info

A beépített Log alkalmazás (src/apps/log/) megjeleníti az adatbázisba mentett naplókat. Csak admin jogosultsággal érhető el.

A naplók az error_logs táblában tárolódnak, ha a database cél aktív.

A kliens oldali JavaScript hibák automatikusan naplózódnak a /api/log végponton keresztül. Ez a hooks.client.ts-ben van beállítva.