Shopware 6 - Exception Logging deaktivieren

Shopware 6 protokolliert alle auftretenden PHP Exceptions im Verzeichnis var/log nach dem Schema: prod-YYYY-MM-DD.log. Hier werden bei einer Standard-Installation auch alle 404-Fehler (PHP Exceptions) protokolliert, wodurch das Logfile schnell unübersichtlich werden kann.

Shopware bietet über die Konfigurationsdateien die Möglichkeit an, eine Liste an Exceptions zu definieren, die nicht mehr im Shopware Log protokolliert werden sollen.


In der Shopware Version 6.4.20.0 funktioniert das Ausblenden ausgewählter Exceptions aufgrund eines Bugs nicht. Ein Patch hierfür wurde bereits implementiert und wird mit dem nächsten Shopware Release ausgerollt.



Beispiel NotFoundException Log-Eintrag

Shopware protokolliert 404-Fehler im Log wie folgt:

[2022-03-01T12:40:40.742311+00:00] request.ERROR: 

Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: 
"No route found for "GET https://shopware.creoline-demo.com/test-404-exception"


Deaktivierung der 404-Fehler im Shopware Log

Um die PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException in Shopware 6 zu deaktivieren, muss eine shopware.yaml Config Datei in dem folgendem Shopware Verzeichnis angelegt werden:


/config/packages/shopware.yaml


Tipp: Bei unseren Managed Shopware Servern befindet sich das korrekte Document-Root Verzeichnis unter dem absoluten Pfad: /var/www/vhosts/meine-shop-domain.de/httpdocs/


# /var/www/vhosts/meine-shop-domain.de/httpdocs/config/packages/shopware.yaml

shopware:
    logger:
        file_rotation_count: 14
        exclude_exception:
            - League\OAuth2\Server\Exception\OAuthServerException
            - Symfony\Component\HttpKernel\Exception\NotFoundHttpException


Im Bereich exclude_exception können weitere Exceptions angegeben werden, die nicht mehr protokolliert werden sollen. Den vollständig qualiizierten Namen (Full Qualified Name) können Sie z.B. aus dem bisherigen Log entnehmen und in dieser Datei ergänzen.


Nachdem die Config-Datei erstellt wurde, muss der Shopware Cache geleert werden, damit die neue Konfigurationsdatei aktiviert wird:

bin/console cache:clear


Bei unseren Managed Shopware Servern stehen verschiedene PHP-Binaries für die Ausführung der CLI Konsole zur Verfügung. Um den Cache mit der PHP 8.1 CLI zu leeren muss folgendes Command ausgeführt werden:

/opt/plesk/php/8.1/bin/php /var/www/vhosts/meine-shop-domain.de/httpdocs/bin/console cache:clear


Anschließend werden keine weiteren Exceptions der Klasse Symfony\Component\HttpKernel\Exception\NotFoundHttpException im Shopware Log protokolliert.