Php 如何将记录器输出路径设置为服务提供的目录?
我有一个symfony 3.2项目,希望登录到一个可配置的目录。此目录配置为Windows注册表中的注册表项(我无法更改) 因此,我构建了一个从注册表项读取日志路径的服务,现在希望登录到该路径。当然,此服务不需要记录器:-)Php 如何将记录器输出路径设置为服务提供的目录?,php,symfony,Php,Symfony,我有一个symfony 3.2项目,希望登录到一个可配置的目录。此目录配置为Windows注册表中的注册表项(我无法更改) 因此,我构建了一个从注册表项读取日志路径的服务,现在希望登录到该路径。当然,此服务不需要记录器:-) 我该怎么做?您应该使用表达式语言调用您的服务函数: # app/config/config.yml services: log_writer: class: AppBundle\Log\LogWriter argumen
我该怎么做?您应该使用表达式语言调用您的服务函数:
# 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服务,以明确区分两者。将路径发现的复杂性封装到一个独立类中没有错。