TYPO3 Log Datei erweitern um Debugging zu erleichtern

Um herauszufinden unter welchen Umständen manche Fehler in der TYPO3 Log landen, hilft es den GET Request mit zu loggen. Hierfür benötigt es eine PHP Klasse und eine Einstellung in der settings.php . Die Klasse ist ab ws_t3bootstrap 13.11.12 verfügbar, kann jedoch natürlich einfach selbst ins eigene Template eingebaut werden.

Zunächst die PHP Klasse anlegen:

<?php

namespace WapplerSystems\WsT3bootstrap\Log;


use TYPO3\CMS\Core\Log\LogRecord;
use TYPO3\CMS\Core\Log\Processor\ProcessorInterface;

class RequestUriProcessor implements ProcessorInterface
{


    public function processLogRecord(LogRecord $logRecord): LogRecord
    {
        $uri = $_SERVER['REQUEST_URI'] ?? 'N/A';
        $logRecord->addData(['requestUri' => $uri]);
        return $logRecord;
    }

}

Nun die Klasse als Processor registrieren.

'LOG' => [
    'TYPO3' => [
         ....
    ],
    'processorConfiguration' => [
        'notice' => [
            \WapplerSystems\WsT3bootstrap\Log\RequestUriProcessor::class => []
        ]
    ]
],

Hier ein Beispiel für die typo3 log Ausgabe in der /var/log/typo3_xxxxx.log

Fri, 04 Jul 2025 22:24:34 +0200 [ERROR] request="1618d7c7e2301" component="TYPO3.CMS.Core.TypoScript.IncludeTree.Visitor.IncludeTreeConditionMatcherVisitor": TypoScript condition ["{$navigation.mobile.menuType}" == "mmenu" && {$navigation.mobile.useAjax} == 0] could not be parsed: Unexpected character "$" around position 47 for expression `"{$navigation.mobile.menuType}" == "mmenu" && {$navigation.mobile.useAjax} == 0`.- SyntaxError: Unexpected character "$" around position 47 for expression `"{$navigation.mobile.menuType}" == "mmenu" && {$navigation.mobile.useAjax} == 0`., in file /var/www/html/vendor/symfony/expression-language/Lexer.php:97 ..... ","requestUri":"/de/elemente/content"}

Die Request Uri steht hier am Ende nun.

Sven Wappler

Webentwickler, Programmierer, TYPO3 Experte

Für dich vielleicht ebenfalls interessant …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert