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.