Questa documentazione è stata tradotta automaticamente dall'IA.
NocoBase Le offre un sistema di logging ad alte prestazioni basato su pino. Ovunque Lei abbia accesso a un context, può ottenere un'istanza del logger tramite ctx.logger per registrare i log chiave durante l'esecuzione di un plugin o del sistema.
Questi metodi corrispondono a diversi livelli di log (dal più alto al più basso):
| Livello | Metodo | Descrizione |
|---|---|---|
fatal | ctx.logger.fatal() | Errori fatali, che di solito causano l'uscita del programma |
error | ctx.logger.error() | Log di errore, che indicano il fallimento di una richiesta o operazione |
warn | ctx.logger.warn() | Informazioni di avviso, che segnalano potenziali rischi o situazioni inattese |
info | ctx.logger.info() | Informazioni di runtime regolari |
debug | ctx.logger.debug() | Informazioni di debug per l'ambiente di sviluppo |
trace | ctx.logger.trace() | Informazioni di traccia dettagliate, solitamente per diagnosi approfondite |
Ogni output di log è in formato JSON strutturato e contiene i seguenti campi per impostazione predefinita:
| Campo | Tipo | Descrizione |
|---|---|---|
level | number | Livello del log |
time | number | Timestamp (millisecondi) |
pid | number | ID processo |
hostname | string | Nome host |
msg | string | Messaggio del log |
| Altri | object | Informazioni di contesto personalizzate |
Esempio di output:
ctx.logger inietta automaticamente le informazioni di contesto, come il plugin corrente, il modulo o la fonte della richiesta, consentendo ai log di tracciare l'origine in modo più accurato.
Esempio di output (con contesto):
Può creare istanze di logger personalizzate nei plugin, ereditando o estendendo le configurazioni predefinite:
I logger figli ereditano la configurazione del logger principale e allegano automaticamente il contesto.
I livelli di log di Pino seguono una definizione numerica dal più alto al più basso, dove numeri più piccoli indicano una priorità inferiore.
Di seguito è riportata la tabella completa della gerarchia dei livelli di log:
| Nome Livello | Valore | Nome Metodo | Descrizione |
|---|---|---|---|
fatal | 60 | logger.fatal() | Errori fatali, che di solito impediscono al programma di continuare l'esecuzione |
error | 50 | logger.error() | Errori generici, che indicano il fallimento di una richiesta o eccezioni operative |
warn | 40 | logger.warn() | Informazioni di avviso, che segnalano potenziali rischi o situazioni inattese |
info | 30 | logger.info() | Informazioni generali, che registrano lo stato del sistema o operazioni normali |
debug | 20 | logger.debug() | Informazioni di debug per l'analisi dei problemi in fase di sviluppo |
trace | 10 | logger.trace() | Informazioni di traccia dettagliate per una diagnosi approfondita |
silent | -Infinity | (nessun metodo corrispondente) | Disattiva tutti gli output di log |
Pino emette solo i log con un livello maggiore o uguale alla configurazione level attuale. Ad esempio, quando il livello di log è info, i log di debug e trace verranno ignorati.
Utilizzi il Logger di Contesto
Utilizzi ctx.logger nei contesti di plugin, modello o applicazione per includere automaticamente le informazioni sull'origine.
Distingua i Livelli di Log
error per registrare eccezioni di businessinfo per registrare cambiamenti di statodebug per registrare informazioni di debug per lo sviluppoEviti il Logging Eccessivo
Soprattutto ai livelli debug e trace, Le consigliamo di abilitarli solo negli ambienti di sviluppo.
Utilizzi Dati Strutturati
Passi parametri oggetto invece di concatenare stringhe; questo aiuta nell'analisi e nel filtraggio dei log.
Seguendo queste pratiche, gli sviluppatori possono tracciare in modo più efficiente l'esecuzione dei plugin, risolvere i problemi e mantenere un sistema di logging strutturato ed estensibile.