Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将记录器输出路径设置为服务提供的目录?_Php_Symfony - Fatal编程技术网

Php 如何将记录器输出路径设置为服务提供的目录?

Php 如何将记录器输出路径设置为服务提供的目录?,php,symfony,Php,Symfony,我有一个symfony 3.2项目,希望登录到一个可配置的目录。此目录配置为Windows注册表中的注册表项(我无法更改) 因此,我构建了一个从注册表项读取日志路径的服务,现在希望登录到该路径。当然,此服务不需要记录器:-) 我该怎么做?您应该使用表达式语言调用您的服务函数: # app/config/config.yml services: log_writer: class: AppBundle\Log\LogWriter argumen

我有一个symfony 3.2项目,希望登录到一个可配置的目录。此目录配置为Windows注册表中的注册表项(我无法更改)

因此,我构建了一个从注册表项读取日志路径的服务,现在希望登录到该路径。当然,此服务不需要记录器:-)


我该怎么做?

您应该使用表达式语言调用您的服务函数:

# app/config/config.yml
services:
    log_writer:
        class:        AppBundle\Log\LogWriter
        arguments:    ["@=service('log_reader').getLogDirectory()"]

查看。

您应该使用表达式语言调用您的服务函数:

# app/config/config.yml
services:
    log_writer:
        class:        AppBundle\Log\LogWriter
        arguments:    ["@=service('log_reader').getLogDirectory()"]

查看。

它实际上取决于您想要记录的方式和内容

一般来说,如果您想为应用程序的日志记录定义另一个路径,那么最好的选择是在


没有任何东西阻止您在自己的
AppKernel
中重写此方法,并使用PHP代码在Windows注册表中获取路径,无需Symfony
服务

它实际上取决于您要记录的方式和内容

一般来说,如果您想为应用程序的日志记录定义另一个路径,那么最好的选择是在


没有什么可以阻止您在自己的
AppKernel
中重写此方法,并使用PHP代码在Windows注册表中获取路径,无需Symfony
服务

我无法实现此功能,但我已经了解了表达式语法-谢谢!问题可能是,我希望将表达式放在config键
monolog.handlers..path
下,其中的表达式似乎不会被计算。我无法实现这一点,但我已经了解了表达式语法-谢谢!问题可能是,我希望在config键
monolog.handlers..path
下有表达式,其中表达式似乎没有被计算。这就是我最终要做的,尽管我仍然需要该服务-获取日志目录的实际方法取决于应用程序运行的平台。但是该服务的实例化非常简单,可以在
AppKernel.php
中手动完成。是的,我重新编写了Symfony服务,以明确区分两者。将路径发现的复杂性封装到一个独立类中并没有错。这就是我最终所做的,尽管我仍然需要该服务-获取日志目录的实际方法取决于应用程序运行的平台。但是该服务的实例化非常简单,可以在
AppKernel.php
中手动完成。是的,我重新编写了Symfony服务,以明确区分两者。将路径发现的复杂性封装到一个独立类中没有错。