如何通过 monolog 从 yml 配置文件 %region% 中记录参数

How to log parameter from yml config file %region% via monolog

我尝试使用格式化程序:

services:
monolog.formatter.tits:
    class: Monolog\Formatter\LineFormatter
    arguments:
        - "[%%datetime%%] [%extra.region%] %%channel%%.%%level_name%%: %%message%% %%context%% %%extra%%\n" "%region%"

但是我失败了,得到了这个:

[2016-02-23 09:56:54][%region%] event.DEBUG: Notified event "kernel.terminate" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelTerminate". [] []

yml 配置文件中有 [%region%] 而不是我的区域参数。

怎么做这个运行?

您需要将 extra.region 参数周围的“%”加倍才能使其生效:

services:
monolog.formatter.tits:
class: Monolog\Formatter\LineFormatter
arguments:
    - "[%%datetime%%] [%%extra.region%%] %%channel%%.%%level_name%%: %%message%% %%context%% %%extra%%\n" "%%region%%"

终于找到答案了。

services:
monolog.formatter.q3dm6:
    class: Monolog\Formatter\LineFormatter
    arguments:
        - "[%%datetime%%] [region:%region%] %%channel%%.%%level_name%%: %%message%% %%context%% %%extra%%\n"

如果你想从 yml 配置文件中提取它,你只需要百分之一。现在我得到正确的日志:

[2016-02-23 10:50:38] [region:pl] request.CRITICAL: Uncaught PHP Exception Twig_Error_Syntax...