Warning: You are browsing the documentation from version 4 to 10 of Pimcore. Please visit https://pimcore.com/docs/platform/ for the latest versions of Pimcore.
Version: Edit on GitHub


There are several different kinds of logs in Pimcore. All of them are located under /var/log and get rotated as well as compressed automatically on every day (7 days retention) by the maintenance command.


This is definitely one of the most important logs and also the default logging location.

Pimcore uses Symfony default monolog logging with following channels: pimcore, pimcore_api, session. For details see Symfonys monolog docs.


By default Pimcore writes PHP-Engine Log Messages to the file php.log. You can change this using constant PIMCORE_PHP_ERROR_LOG that is used to set PHP's error_log Configuration.


In this log you can find every action done within the Pimcore Backend Interface. It can be deactivated by configuring disable_usage_statistics in config/config.yaml:

        disable_usage_statistics: true
Example Entry:
2021-04-26T13:18:35+0200 : 2|Pimcore\Bundle\AdminBundle\Controller\Admin\Document\PageController::saveAction|pimcore_admin_document_page_save|{"task":"publish","id":"1","data":"{\"cImage_0\":{\"data\":{\"id\":337,\"path\":\"\\\/..."}
2021-04-26T13:18:35+0200 : 2|Pimcore\Bundle\AdminBundle\Controller\Admin\Asset\AssetController::getImageThumbnailAction|pimcore_admin_asset_getimagethumbnail|{"id":"3","alt":"","height":"undefined","thumbnail":"portalCarousel","pimcore_editmode":"1"}
Value (from the example above) Description
2021-04-26T13:18:35+0200 Timestamp
2 User-ID
PageController::saveAction Controller::Action
pimcore_admin_document_page_save Route name
{"task":"pub .... Request Parameters (shortened & censored)


Sometimes it's necessary to debug redirects, for example when a redirect ends in an infinite loop. In this log you can see every request where a redirect takes action.

2021-04-26T14:03:20+0200 :          Custom-Redirect ID: 1, Source: /asdsad/redirectsource/asd -> /en/Events

Writing your own log files

To create a custom log entry, we need to create the monolog log channels and log handlers configuration. Here is an example on how to log in a custom filename called custom.log

            level:    debug
            type:     stream
            path:     '%kernel.logs_dir%/custom.log'
            channels: [custom_log]
    channels: [custom_log, some_other_channel]

It is possible to inject the Psr\Log\LoggerInterface by changing the variable name eg. $customLogLogger (camel case channel name + Logger) and Symfony will automatically wire the specified channel.

class SomeService {
    public function __construct(\Psr\Log\LoggerInterface $customLogLogger)
        $customLogLogger->debug('Test Message');

For more, please refer to Monolog Documentation