Shopware 6 - Protokollrotation / Logrotate
Shopware 6 protokolliert alle auftretenden PHP Exceptions im Verzeichnis var/log
nach dem Schema: prod-YYYY-MM-DD.log
. Hierzu wird die Monolog Library verwendet.
Shopware bietet im Standard leider keine Option für die Protokollrotation an, sodass auf zwei alternative Optionen ausgewichen werden muss:
- Monolog rotating_file Handler
- Linux logrotate
Monolog rotating_file Handler
Um den Monolog rotating_file Handler in Shopware 6 zu verwenden, muss eine shopware.yaml Config Datei in dem folgenden 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
Über die Variable file_rotation_count
kann die Anzahl der maximalen gleichzeitigen Protokolldateien konfiguriert werden. Ältere Dateien werden automatisch durch Monolog entfernt.
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
Linux Logrotate
Navigieren Sie zum Verzeichnis /etc/logrotate.d/
und erstellen Sie eine Datei über den Befehl touch shopware
eine neue Datei.
touch /etc/logrotate.d/shopware
/var/www/vhosts/shopware.creoline-demo.com/log/*.log {
daily
size 50M
rotate 14
notifempty
missingok
nocompress
}
Über die Anweisung daily
, rotate 14
wird der logrotate Daemon dazu angewiesen, die Log-Dateien von Shopware täglich für 14 Tage zu rotieren.