Shopware 6 - Log rotation / Logrotate

Shopware 6 logs all occurring PHP exceptions in the directory var/log according to the scheme: prod-YYYY-MM-DD.log. The Monolog Library is used for this purpose.

Unfortunately, Shopware does not offer an option for log rotation as standard, so two alternative options must be used:


  1. monolog rotating_file handler
  2. linux logrotate



Monolog rotating_file Handler

To use the monolog rotating_file handler in Shopware 6, a shopware.yaml config file must be created in the following Shopware directory:


/config/packages/shopware.yaml


Tip: With our managed Shopware servers, the correct document root directory is located under the absolute path: /var/www/vhosts/my-shop-domain.com/httpdocs/


# /var/www/vhosts/my-shop-domain.com/httpdocs/config/packages/shopware.yaml

shopware:
    logger:
        file_rotation_count: 14


The variable file_rotation_count can be used to configure the maximum number of simultaneous log files. Older files are automatically removed by Monolog.


After the config file has been created, the Shopware cache must be emptied so that the new configuration file is activated:

bin/console cache:clear


Our Managed Shopware servers have various PHP binaries available for running the CLI console. To clear the cache with the PHP 8.1 CLI, the following command must be executed:

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



Linux Logrotate

Navigate to the directory /etc/logrotate.d/ and create a new file using the command touch shopware.


touch /etc/logrotate.d/shopware


/var/www/vhosts/shopware.creoline-demo.com/log/*.log {
    daily
    size 50M
    rotate 14
    notifempty
    missingok
    nocompress
}


The instruction daily, rotate 14 instructs the logrotate daemon to rotate the Shopware log files daily for 14 days.