generated from gitea_admin/default
30 lines
898 B
JavaScript
30 lines
898 B
JavaScript
import { getRequestIP } from 'h3';
|
||
import logger from '~~/server/utils/logger';
|
||
|
||
export default defineNitroPlugin((nitroApp) => {
|
||
nitroApp.hooks.hook('request', (event) => {
|
||
// 1. On ignore les requêtes internes de Nuxt Image
|
||
if (event.path.startsWith('/_ipx')) return;
|
||
|
||
// 2. On ignore l’endpoint de log, qui est déjà tracé par logger client_log
|
||
if (event.path === '/api/log') return;
|
||
// message: 'logger_global',
|
||
logger.info('logger_global', {
|
||
label: 'back-end',
|
||
internal: event._internal,
|
||
method: event.method,
|
||
url: event.path,
|
||
ip: getRequestIP(event) || 'unknown',
|
||
});
|
||
});
|
||
|
||
nitroApp.hooks.hook('error', (error, { event }) => {
|
||
logger.error('Unhandled error', {
|
||
message: error.message,
|
||
stack: error.stack,
|
||
internal: event._internal,
|
||
method: event?.method,
|
||
url: event?.path,
|
||
});
|
||
});
|
||
}); |