Formats
mime-logger vous permet de contrôler l’apparence de chaque ligne de log : utilisez un des quatre présets intégrés, écrivez une chaîne de format avec des tokens, ou fournissez une FormatFn entièrement personnalisée.
Importez Formats et passez un préset à opts.format :
import Logger, { Formats } from "mime-logger";
const logger = new Logger("app", { format: Formats.pretty });| Champ | Type | Requis | Description |
|---|---|---|---|
Formats.pretty | FormatFn | optionnel | Par défaut. Horodatage atténué, badge de niveau coloré, nom en jaune entre parenthèses, message coloré. |
Formats.minimal | FormatFn | optionnel | Niveau complété à 5 caractères, nom atténué, message brut. Sortie compacte pour processus unique. |
Formats.detailed | FormatFn | optionnel | Fichier:ligne de l'appelant préfixé, horodatage ISO. Idéal pour déboguer les emplacements de pile. |
Formats.json | FormatFn | optionnel | JSON structuré : { timestamp, level, name, message }. À piper vers des agrégateurs de logs. |
import Logger, { Formats } from "mime-logger";
for (const preset of ["pretty", "minimal", "json"] as const) { console.log(`-- ${preset} --`); const logger = new Logger("app", { format: Formats[preset] }); logger.info("Server started on port 3000");}
Tokens de chaîne de format
Section intitulée « Tokens de chaîne de format »Passez une chaîne au lieu d’une FormatFn pour utiliser la substitution de tokens. Utile pour des mises en page personnalisées simples sans écrire de fonction.
const logger = new Logger("api", { format: "{time} [{level}] {name} — {message}",});| Champ | Type | Requis | Description |
|---|---|---|---|
{time} | string | optionnel | Heure localisée avec millisecondes : [HH:MM:SS.mmm] |
{date} | string | optionnel | Chaîne de date localisée. |
{iso} | string | optionnel | Horodatage ISO 8601. |
{level} | string | optionnel | Nom du niveau : info | warn | error. |
{name} | string | optionnel | Nom du logger (chaîne vide si sans nom). |
{message} | string | optionnel | Le message de log. |
{pid} | string | optionnel | ID du processus courant. |
{env} | string | optionnel | NODE_ENV ou "production" par défaut. |
{file} | string | optionnel | Nom du fichier source de l'appelant. |
{line} | string | optionnel | Numéro de ligne de l'appelant. |
{function} | string | optionnel | Nom de la fonction de l'appelant. |
{caller} | string | optionnel | Une frame au-dessus de la fonction appelante. |
%s | string | optionnel | Espace réservé d'interpolation pour les arguments supplémentaires. |
Fonction de format personnalisée
Section intitulée « Fonction de format personnalisée »Pour un contrôle total, fournissez une FormatFn. Elle reçoit un FormatObject et une instance de ColorHelpers.
import Logger, { type FormatFn } from "mime-logger";
const myFormat: FormatFn = (obj, c) => { const ts = c.dim(obj.timestamp.toISOString()); const level = obj.level.toUpperCase().padEnd(5); const name = obj.name ? ` ${c.cyan(obj.name)}` : ""; return `${ts} ${level}${name} ${obj.message}`;};
const logger = new Logger("app", { format: myFormat });FormatObject
Section intitulée « FormatObject »interface FormatObject { message: string; name?: string; timestamp: Date; level: LogLevel; args: any[];}ColorHelpers
Section intitulée « ColorHelpers »interface ColorHelpers { red: (s: string) => string; yellow: (s: string) => string; blue: (s: string) => string; green: (s: string) => string; cyan: (s: string) => string; magenta: (s: string) => string; gray: (s: string) => string; bold: (s: string) => string; dim: (s: string) => string;}Les fonctions de couleur sont alimentées par ansis et suppriment automatiquement les codes ANSI lors de l’écriture vers des sorties non-TTY (ex. : fichiers).
