Aller au contenu

Référence API

import { MimeLogger } from "mime-logger";
import Logger from "mime-logger"; // export par défaut, même classe
new MimeLogger(name?: string, opts?: LoggerOptions)
ChampTypeRequisDescription
namestringoptionnelNom du logger. Apparaît dans la sortie sous forme (name).
optsLoggerOptionsoptionnelOptions de format et de sortie.
ChampTypeRequisDescription
info(message, ...args)voidoptionnelLog au niveau INFO.
warn(message, ...args)voidoptionnelLog au niveau WARN.
error(message, ...args)voidoptionnelLog au niveau ERROR.
log(level, message, args)voidoptionnelLog bas niveau. args est un tableau.
child(name)MimeLoggeroptionnelCrée un logger enfant. Le nom est ajouté sous forme parent/enfant.
write(message, ...args)voidoptionnelÉcrit une ligne formatée sur stdout. Sans badge de niveau.
promisesWrite(message, level, ...promises)Promise<void>optionnelRésout les promesses inline dans la sortie. Utilisez %p comme espace réservé.

Attend chaque promesse et écrit la valeur résolue là où %p apparaît dans le message. Lève une erreur si le message ne contient pas de %p.

await logger.promisesWrite(
"Utilisateur : %p, Rôle : %p",
LogLevel.INFO,
fetchUser(id),
fetchRole(id),
);
// [12:34:56.789] INFO (app): Utilisateur : alice, Rôle : admin
interface LoggerOptions {
format?: string | FormatFn;
output?: OutputTarget | OutputTarget[];
}
enum LogLevel {
INFO = "info",
WARN = "warn",
ERROR = "error",
}
interface FormatObject {
message: string;
name?: string;
timestamp: Date;
level: LogLevel;
args: any[];
}
type FormatFn = (obj: FormatObject, colors: ColorHelpers) => string;
type OutputTarget =
| "console"
| FileOutputOptions
| ((message: string, obj: FormatObject) => void);
interface FileOutputOptions {
type: "file";
path: string; // supporte {year} {month} {day} {date} {hour} {minutes} {seconds} {ms}
}
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;
}
interface CallerInfoOptions {
skipFrames?: number;
additionalSkip?: RegExp;
}
import { Formats } from "mime-logger";
ChampTypeRequisDescription
Formats.prettyFormatFnoptionnelPar défaut. Horodatage coloré, badge de niveau, nom, message.
Formats.minimalFormatFnoptionnelCompact. Niveau complété à 5 caractères, nom atténué, message brut.
Formats.detailedFormatFnoptionnelEmplacement de l'appelant + horodatage ISO préfixés.
Formats.jsonFormatFnoptionnelSortie JSON structurée : { timestamp, level, name, message }.

Retourne une chaîne ANSI colorée pour le niveau donné — ex. "INFO" en vert.

import { getLevelString } from "mime-logger";
getLevelString(LogLevel.WARN); // "WARN" en jaune

Extrait les informations de frame de pile pour le site appelant. Utilisé en interne par Formats.detailed et les tokens de format {file} / {line}.

import { getCallerInfo } from "mime-logger";
const { file, line, function: fn, caller } = getCallerInfo({ skipFrames: 1 });

L’instance ColorHelpers utilisée par tous les présets intégrés.

import { colors } from "mime-logger";
console.log(colors.green("ok"));