Нет входа в производственную среду при запуске консольных команд - PullRequest
2 голосов
/ 26 февраля 2020

При запуске Console команд в режиме prod мне нужно регистрировать Doctrine связанные сообщения отладки. Все отлично работает в dev со следующей конфигурацией, поэтому я предполагаю, что забыл что-то установить, когда в prod?

Моя система:

  • PHP 7,3
  • Symfony 4,4
  • Монолог
  • Doctrine

Как выполнять команды:

Я запускаю команды в prod как

php bin/console app:scrape --env=prod

или

# set APP_ENV=prod in .env.local before
php bin/console app:scrape

Оба результата не приводят к журналам. Я уверен, что я запускаю prod, потому что Symfony создает var/cache/prod каждый раз.

Файл конфигурации Monolog: config / package / prod / monolog.yaml

Этот файл настраивает Monolog в среде prod.

monolog:
    handlers:
        main:
            type: fingers_crossed
            action_level: debug
            handler: nested
            excluded_http_codes: [404, 405]
        nested:
            type: stream
            path: "%kernel.logs_dir%/%kernel.environment%.log"
            level: debug
        deprecation:
            type: stream
            path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log"
        deprecation_filter:
            type: filter
            handler: deprecation
            max_level: info
            channels: ["php"]
        doctrine:
            level: debug
            type: stream
            path: "%kernel.logs_dir%/doctrine/info.log"
            channels: ["doctrine"]

Вывод APP_ENV = отладочный файл / консольная отладка: config monolog :

https://gist.github.com/k00ni/419f62941e496a376be35a0d06e44131

1 Ответ

0 голосов
/ 26 февраля 2020

Может быть, у вас есть основной обработчик, сгруппированный так, что он будет передавать сообщения обоим обработчикам (ваш текущий основной и doctrine):

# config/packages/monolog.yaml
monolog:
    handlers:
        main:
            type: group
            members: ["doctrine", "default"]
        doctrine:
            level: debug
            type: stream
            path: "%kernel.logs_dir%/doctrine/info.log"
            channels: ["doctrine"]
# config/package/prod/monolog.yaml
monolog:
    handlers:
        default: # formerly main
            type: fingers_crossed
            action_level: error
            handler: nested
            excluded_http_codes: [404, 405]
        nested:
            type: stream
            path: "%kernel.logs_dir%/%kernel.environment%.log"
            level: debug
        deprecation:
            type: stream
            path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log"
        deprecation_filter:
            type: filter
            handler: deprecation
            max_level: info
            channels: ["php"]
...