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.');
}