Fehler, Logging und Performance · Frage 1 von 12
Wie kommt eine eigene Service-Klasse in TYPO3 v14 an einen Logger?
2 Antworten sind richtig. Einfach
Lösung anzeigen
Lösung
- C Per Constructor Injection eines Parameters vom Typ Psr\
Log\ LoggerInterface - D Über das LoggerAwareInterface zusammen mit dem LoggerAwareTrait
Erklärung
TYPO3 setzt auf den Logging-Standard PSR-3. Am einfachsten lässt man sich per Constructor Injection einen Psr\ geben; TYPO3 erzeugt dann einen Logger, der den Klassennamen als Kanal trägt. Alternativ implementiert die Klasse LoggerAwareInterface und nutzt den LoggerAwareTrait, dann wird der Logger automatisch gesetzt und steht in $this->logger bereit. Danach genügt etwa $this->logger->warning('Import fehlgeschlagen', ['file' => $file]);. Wohin die Meldungen geschrieben werden, entscheidet die Logging-Konfiguration über Writer – deshalb erzeugt man Writer nicht selbst im Code.