Please enable JavaScript to view this site.

Prozess Designer

Navigation: PHP API > Allgemeines

Fehlerprotokollierung

Scroll Zurück Oben Weiter Mehr

Ab Version 3.8.0 steht die Version 2 der Funktions-API zur Verfügung. Diese enthält diverse Logging-Methoden, die Sie für die Protokollierung von Fehlern und Debuginformationen nutzen können.

Setzen des Dateinamens für die Protokolldatei (setLogFilename(Param1[ Param2, Param3]))

Setzt den Dateinamen für die Protokolldatei (überschreibt den Standardwert).

Parameter

Typ

Beschreibung

$fileName

string

Dateiname für Protokolldatei
 

Standardwert: processName_version_YYYYMMDD.log

$format

string

Formatspezifikation für Namen der Protokolldatei (optional)

 

Standardwert: {filename}_{date}

$dateFormat

string

Formatspezifikation für Datum im Namen der Protokolldatei (optional)

 

Standardwert: Ymd

 

Weitere mögliche Formate:

Y-m-d

Y_m_d

Y.m.d

Bitte beachten Sie: Wenn kein Datum in der Formatspezifikation angegeben wurde, wird das aktuelle Datum automatisch am Ende des Dateinamens hinzugefügt.

Beispiele:

...

$logName = $this->getConfiguration('log_name'); // Name für Logdatei aus Prozesskonfiguration lesen

$this->setLogFilename($logName);

...

 

$logName = $this->setLogFilename('InvoiceNumbers.log', '​​​​​​​​​​​​​​​​​​​​{​​​​​​​​​​​​​​​​​​​​date}_{​​​​​​​​​​​​​filename}​​​​​​​​​​​​​​​​​​​​', 'Y-m-d'); // 2021-09-21_InvoiceNumbers.log

 

Setzen des Verzeichnispfads für die Protokolldatei (setLogFilePath)

Setzt den Verzeichnispfad für die Speicherung der Protokolldatei (überschreibt den Standardwert).

Parameter

Typ

Beschreibung

$filePath

string

Verzeichnispfad für für die Speicherung der Protokolldatei
 

Standardwert: JobRouter-Verzeichnis output/log

Beispiel:

...

$logPath = $this->getConfiguration('log_path'); // Verzeichnispfad für Logdatei aus Prozesskonfiguration lesen

$this->setLogFilePath($logPath);

...

Setzen den Namen des Logkanals (setLogChannel)

Setzt den Namen des Logkanals (überschreibt den Standardwert). Der Logkanal wird als Präfix des Protokolleintrags in die Protokolldatei ausgegeben.

Parameter

Typ

Beschreibung

$channel

string

Name des Logkanals
 

Standardwert: incidentNumber.stepNumber.functionClassName

Beispiel:

...

$logChannel = $this->getTableValue('RECHNUNGSNUMMER'); // Rechnungsnummer aus Prozesstabelle lesen

$this->setLogChannel($logChannel);

...

Setzen des Loglevels (setLogLevel)

Legt den minimalen Schweregrad der zu protokollierenden Einträge, das sog. Loglevel, fest (überschreibt den Standardwert). Es werden ausschließlich die Einträge in die Protokolldatei geschrieben, deren Schweregrad gleich oder höher als das aktuell gesetzte Loglevel ist.

Standardmäßig wird als Loglevel der Wert der Konstante CONST_LOG_LEVEL_FILE aus der config.php verwendet. Ist diese Konstante nicht definiert, so wird der Wert WARNING verwendet.

Um sicherzustellen, dass Ihre Protokolleinträge in einer PHP-Funktion unabhängig von den globalen Einstellungen geschrieben werden, rufen Sie diese Funktion zu Beginn der Methode execute mit dem entsprechenden Wert für den Parameter $level in der PHP-Funktion auf.

Parameter

Typ

Beschreibung

$level

string

Minimaler Schweregrad der zu protokollierenden Einträge

 

Mögliche Werte für den Schweregrad: DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY
 

Standardwert: Wert von CONST_LOG_LEVEL_FILE aus config.php

Beispiel:

...

$logLevel = $this->getConfiguration('log_level'); // Loglevel aus Prozesskonfiguration lesen

$this->setLogLevel($logLevel);

...

Setzen des Ausgabeformats für Protokolleinträge (setLogMessageFormat)

Setzt das Ausgabeformat für Protokolleinträge (überschreibt den Standardwert).

Parameter

Typ

Beschreibung

$format

string

Ausgabeformat für Protokolleinträge
 

Standardwert: %datetime% %channel%.%level_name%: %message% %context% %extra%
 

Folgende Variablen können in der Spezifikation des Ausgabeformats verwendet werden:

%datetime%

%channel%

%level_name%

%message%

%context%

%extra%

Beispiel:

...

$this->setLogMessageFormat('%datetime% [%level_name%] %message% %context%');

...

Deaktivierung der Ausgabeformatierung für Protokolleinträge (rawLog)

Deaktiviert die Formatierung der Protokolleinträge vollständig. Protokolleinträge werden unverändert in die Logdatei geschrieben.

Parameter

Typ

Beschreibung

-

-

-

Beispiel:

...

$this->rawLog();

$rechnungsdaten = ['rechnungsnummer' => 43523453, 'rechnungsdatum' => '01.07.2015', 'kundennummer' => '5325438'];

$this->debug($rechnungsdaten);

...

Ausgabe eines beliebigen Objekts in die Logdatei (dump)

Schreibt eine in PHP parsefähige Zeichenkettendarstellung des übergebenen Objekts in die Protokolldatei.

Parameter

Typ

Beschreibung

$var

mixed

Beliebiges Objekt, Array oder skalarer Wert

Beispiel:

...
$rechnungsdaten = ['rechnungsnummer' => 43523453, 'rechnungsdatum' => '01.07.2015', 'kundennummer' => '5325438'];

$this->dump($rechnungsdaten);

...

Ausgabe von Protokolleinträgen mit angegebenen Schweregrad (log)

Schreibt einen Eintrag mit dem angegebenen Schweregrad in die Protokolldatei.

Parameter

Typ

Beschreibung

$level

string

Schweregrad des zu protokollierenden Eintrags

 

Mögliche Werte für den Schweregrad: DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY

$message

string

Text des Protokolleintrags

$context

array

Kontextdaten (optional)

Beispiel:

...
$rechungsnummer = $this->getTableValue('RECHNUNGSNUMMER'); // Rechnungsnummer aus Prozesstabelle lesen

$this->log('INFO', 'Führe Datenabgleich durch.', ['rechnungsnummer' => $rechungsnummer]);

...

Ausgabe von Protokolleinträgen mit bestimmtem Schweregrad

Für jeden Schweregrad gibt es eine separate Methode, um einen entsprechenden Eintrag in die Protokolldatei zu schreiben. Der Name der jeweiligen Methode entspricht dem Schweregrad (d.h. emergency, alert, critical, error, warning, notice, info, debug).

Parameter

Typ

Beschreibung

$message

string

Text des Protokolleintrags

$context

array

Kontextdaten (optional)

Beispiel:

try {

 // Programmcode, der JobRouterException auslöst

} catch (JobRouterException $e) {

 $this->error($e->getMessage());

 throw new JobRouterException('Es ist ein Fehler aufgetreten. Weitere Details finden Sie in der Logdatei.');

}