3

在模式下运行Console命令时prod,我需要记录与 Doctrine 相关的调试消息。dev在以下配置中一切正常,所以我假设我忘记了在什么时候设置什么prod

我的系统:

  • PHP 7.3
  • Symfony 4.4
  • 独白
  • 教义

如何运行命令:

prod我在其中运行命令

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

或者

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

两者都没有日志。我敢肯定,我运行prod,因为 Symfonyvar/cache/prod每次都会创建。

Monolog 配置文件:config/package/prod/monolog.yaml

prod该文件在环境中配置 Monolog 。

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=prod bin/console debug:config monolog 的输出

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

4

1 回答 1

0

也许您可以有一个分组的主处理程序,以便它将与两个处理程序(您当前的主处理程序和学说)一起传递消息:

# 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"]
于 2020-02-26T16:30:13.213 回答