Логирование
В Pimcore используется несколько типов логов. Все они находятся в каталоге /var/log и ежедневно (срок хранения 7 дней) автоматически ротируются и сжимаются командой обслуживания.
<env>.log
Это один из самых важных логов и также место логирования по умолчанию.
Pimcore использует стандартный Monolog от Symfony с каналами: pimcore, pimcore_api, session.
Для подробностей смотрите документацию Symfony по Monolog.
php.log
По умолчанию Pimcore записывает сообщения логов PHP-движка в файл php.log.
Можно изменить это, добавив в конфигурацию Symfony, например:
monolog:
handlers:
error:
type: stream
path: "%kernel.logs_dir%/own_php.log"
level: error
usagelog.log
В этом логе фиксируются все действия, выполняемые через бэкенд-интерфейс Pimcore. Его можно отключить, задав disable_usage_statistics в config/config.yaml:
pimcore:
general:
disable_usage_statistics: true
Пример записи:
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"}
Пояснение
| Значение (из приведенного выше примера) | Описание |
|---|---|
| 2021-04-26T13:18:35+0200 | метка времени |
| 2 | ID пользователя |
| Pimcore\Bundle\AdminBundle\Controller\Admin\Document\PageController::saveAction | Module\Controller::Action |
| pimcore_admin_document_page_save | имя маршрута |
| {"task":"pub .... } | параметры запроса (усечённо и с цензурой) |
redirect.log
Иногда нужно отлаживать редиректы, например когда редирект попадает в бесконечный цикл. В этом логе видны все запросы, в которых сработал редирект.
Пример
2021-04-26T14:03:20+0200 : 10.242.2.255 Custom-Redirect ID: 1, Source: /asdsad/redirectsource/asd -> /en/Events
Информация
Редиректы логируются в канал redirect на уровне info. По умолчанию этот канал записывается в var/log/redirect.log.
Конфигурацию соответствующего обработчика Monolog можно при необходимости изменить.
Создание собственных лог-файлов
Чтобы создавать собственные записи логов, нужно добавить определение каналов Monolog и обработчиков в конфигурацию. Пример конфигурации для записи в файл custom.log
monolog:
handlers:
custom_handler:
level: debug
type: stream
path: '%kernel.logs_dir%/custom.log'
channels: [custom_log]
channels: [custom_log, some_other_channel]
Можно ввести Psr\Log\LoggerInterface, изменив имя переменной, например. $customLogLogger (название канала в camelCase + Logger), и Symfony автоматически подключит указанный канал.
class SomeService {
public function __construct(\Psr\Log\LoggerInterface $customLogLogger)
{
$customLogLogger->debug('Test Message');
}
}
Для дополнительной информации см. документацию Monolog
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.