1- import { LogLevel } from '@nestjs/common' ;
1+ import { LogLevel } from '@nestjs/common'
22
3+ /**
4+ * Retourne un tableau de niveaux de log NestJS basé sur le niveau spécifié.
5+ *
6+ * Cette fonction implémente une hiérarchie de log cumulative où chaque niveau
7+ * inclut automatiquement tous les niveaux plus critiques. Par exemple, le niveau
8+ * "warn" inclura également "error" et "fatal".
9+ *
10+ * @param {string } [logLevel] - Niveau de log souhaité ('fatal', 'error', 'warn', 'info', 'debug', 'verbose')
11+ * @returns {LogLevel[] } Tableau des niveaux de log activés pour ce niveau
12+ *
13+ * @description
14+ * Hiérarchie des niveaux (du plus critique au plus verbeux) :
15+ * - fatal: Erreurs critiques uniquement
16+ * - error: Erreurs (error + fatal)
17+ * - warn: Avertissements (warn + error + fatal)
18+ * - info: Informations (log + warn + error + fatal)
19+ * - debug: Debug (debug + log + warn + error + fatal)
20+ * - verbose: Tout (verbose + debug + log + warn + error + fatal)
21+ *
22+ * Si aucun niveau n'est spécifié ou si le niveau est invalide, retourne 'info' par défaut.
23+ *
24+ * @example
25+ * ```typescript
26+ * // Configuration du logger avec niveau warn
27+ * const levels = getLogLevel('warn');
28+ * // Retourne: ['error', 'fatal', 'warn']
29+ *
30+ * // Configuration du logger avec niveau debug
31+ * const levels = getLogLevel('debug');
32+ * // Retourne: ['error', 'fatal', 'warn', 'log', 'debug']
33+ *
34+ * // Niveau invalide ou non spécifié
35+ * const levels = getLogLevel();
36+ * // Retourne: ['error', 'fatal', 'warn', 'log'] (niveau 'info' par défaut)
37+ * ```
38+ */
339export function getLogLevel ( logLevel ?: string ) : LogLevel [ ] {
440 const logLevelMap : Record < LogLevel | string , LogLevel [ ] > = {
541 fatal : [ 'fatal' ] ,
@@ -8,6 +44,36 @@ export function getLogLevel(logLevel?: string): LogLevel[] {
844 info : [ 'error' , 'fatal' , 'warn' , 'log' ] ,
945 debug : [ 'error' , 'fatal' , 'warn' , 'log' , 'debug' ] ,
1046 verbose : [ 'error' , 'fatal' , 'warn' , 'log' , 'debug' , 'verbose' ] ,
11- } ;
12- return logLevelMap [ logLevel ] || logLevelMap [ 'info' ] ;
47+ }
48+
49+ return logLevelMap [ logLevel ] || logLevelMap [ 'info' ]
1350}
51+
52+ /**
53+ * Niveau de log par défaut pour l'application.
54+ *
55+ * Correspond au niveau 'info' qui inclut les logs, avertissements, erreurs et fatals.
56+ * Ce niveau offre un bon équilibre entre visibilité et performance pour la production.
57+ *
58+ * @constant
59+ * @type {LogLevel[] }
60+ * @default ['error', 'fatal', 'warn', 'log']
61+ */
62+ export const DEFAULT_LOG_LEVEL : LogLevel [ ] = getLogLevel ( 'info' )
63+
64+ /**
65+ * Niveau de log minimal pour les commandes console.
66+ *
67+ * Mode silencieux affichant uniquement les erreurs critiques pour éviter
68+ * de polluer la sortie des commandes CLI. Utile lors de l'exécution de
69+ * scripts ou de tâches automatisées.
70+ *
71+ * @constant
72+ * @type {LogLevel[] }
73+ *
74+ * @description
75+ * Ce niveau est utilisé au démarrage des commandes console pour minimiser
76+ * le bruit dans les logs et garder une sortie propre et lisible.
77+ * Correspond au niveau 'warn' qui inclut warn, error et fatal.
78+ */
79+ export const CONSOLE_LOG_LEVEL : LogLevel [ ] = getLogLevel ( 'warn' )
0 commit comments