logologo
Start
Handbuch
Entwicklung
Plugins
API
Startseite
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Start
Handbuch
Entwicklung
Plugins
API
Startseite
logologo
RunJS Übersicht
Module importieren
Rendern im Container

Globale Variablen

window
document
navigator

ctx

ctx.blockModel
ctx.collection
ctx.collectionField
ctx.dataSource
ctx.dataSourceManager
ctx.element
ctx.exit()
ctx.exitAll()
ctx.filterManager
ctx.form
ctx.getModel()
ctx.getValue()
ctx.getVar()
ctx.i18n
ctx.importAsync()
ctx.initResource()
ctx.libs
ctx.location
ctx.logger
ctx.makeResource()
ctx.message
ctx.modal
ctx.model
ctx.notification
ctx.off()
ctx.on()
ctx.openView()
ctx.render()
ctx.request()
ctx.requireAsync()
ctx.resource
ctx.route
ctx.router
ctx.setValue()
ctx.sql
ctx.t()
ctx.view
Previous Pagectx.location
Next Pagectx.makeResource()
KI-Übersetzungshinweis

Dieses Dokument wurde von KI übersetzt. Für genaue Informationen lesen Sie bitte die englische Version.

#ctx.logger

Eine auf pino basierende Logging-Kapselung, die hochperformante strukturierte JSON-Logs bereitstellt. Es wird empfohlen, ctx.logger anstelle von console zu verwenden, um die Log-Erfassung und -Analyse zu erleichtern.

#Anwendungsbereiche

ctx.logger kann in allen RunJS-Szenarien für Debugging, Fehlerverfolgung, Performance-Analyse usw. verwendet werden.

#Typdefinition

logger: pino.Logger;

ctx.logger ist eine Instanz von engine.logger.child({ module: 'flow-engine' }), also ein pino-Child-Logger mit einem module-Kontext.

#Log-Ebenen

pino unterstützt die folgenden Ebenen (von hoch nach niedrig):

EbeneMethodeBeschreibung
fatalctx.logger.fatal()Fataler Fehler, führt normalerweise zum Beenden des Prozesses
errorctx.logger.error()Fehler, weist auf eine fehlgeschlagene Anfrage oder Operation hin
warnctx.logger.warn()Warnung, weist auf potenzielle Risiken oder abnormale Situationen hin
infoctx.logger.info()Allgemeine Laufzeitinformationen
debugctx.logger.debug()Debugging-Informationen für die Entwicklung
tracectx.logger.trace()Detaillierte Verfolgung für tiefergehende Diagnosen

#Empfohlene Schreibweise

Empfohlen wird das Format level(msg, meta): Die Nachricht zuerst, gefolgt von einem optionalen Metadaten-Objekt.

ctx.logger.info('Block-Ladevorgang abgeschlossen');
ctx.logger.info('Operation erfolgreich', { recordId: 456 });
ctx.logger.warn('Performance-Warnung', { duration: 5000 });
ctx.logger.error('Operation fehlgeschlagen', { userId: 123, action: 'create' });
ctx.logger.error('Anfrage fehlgeschlagen', { err });

pino unterstützt auch level(meta, msg) (Objekt zuerst) oder level({ msg, ...meta }) (einzelnes Objekt), die je nach Bedarf verwendet werden können.

#Beispiele

#Grundlegende Verwendung

ctx.logger.info('Block-Ladevorgang abgeschlossen');
ctx.logger.warn('Anfrage fehlgeschlagen, Cache wird verwendet', { err });
ctx.logger.debug('Wird gespeichert...', { recordId: ctx.record?.id });

#Child-Logger mit child() erstellen

// Erstellt einen Child-Logger mit Kontext für die aktuelle Logik
const log = ctx.logger.child({ scope: 'myBlock' });
log.info('Schritt 1 wird ausgeführt');
log.debug('Schritt 2 wird ausgeführt', { step: 2 });

#Beziehung zu console

Es wird empfohlen, ctx.logger direkt zu verwenden, um strukturierte JSON-Logs zu erhalten. Wenn Sie an die Verwendung von console gewöhnt sind, entsprechen diese: console.log → ctx.logger.info, console.error → ctx.logger.error, console.warn → ctx.logger.warn.

#Log-Format

pino gibt strukturiertes JSON aus, wobei jeder Log-Eintrag Folgendes enthält:

  • level: Log-Ebene (numerisch)
  • time: Zeitstempel (Millisekunden)
  • msg: Log-Nachricht
  • module: Festgelegt auf flow-engine
  • Weitere benutzerdefinierte Felder (über Objekte übergeben)

#Hinweise

  • Logs sind strukturiertes JSON, was die Erfassung, Suche und Analyse erleichtert.
  • Für Child-Logger, die über child() erstellt wurden, wird ebenfalls die Schreibweise level(msg, meta) empfohlen.
  • Einige Laufzeitumgebungen (wie Workflows) verwenden möglicherweise andere Methoden zur Log-Ausgabe.

#Verwandte Themen

  • pino — Die zugrunde liegende Logging-Bibliothek