我具有以下独白处理程序定义:
# config_prod.yml
app_generic:
type: rotating_file
max_files: 15
path: "%param.app_logging_config.log_generic_file%"
level: info
channels: [app]
app_api:
max_files: 15
path: "%param.app_logging_config.log_api_file%"
level: info
channels: [app]
level: info
app_response:
max_files: 15
path: "%param.app_logging_config.log_response_file%"
channels: [app]
level: info
在service.yml中,我的意图是使用上述定义的处理程序数组注入独白(@logger
)。
#service.yml
app.app_logger:
class: AppBundle\Classes\AppLogger
arguments: ['@logger': ['@app_generic', '@app_api', '@app_response']]
calls:
- [init, ['%app_logging_config%']
tags:
- { name: monolog.logger, channel: app }
如何将参数传递给注入的参数?
重新阅读description时,我只是通过标记服务定义来使用this方法:
app.logger:
arguments: ['@logger']
tags:
- { name: monolog.logger, channel: app }
channels: ['app']
或者甚至(如果我理解正确),添加一个channels: ['app']
密钥,并将其放在service参数中:
app.logger:
arguments: ['@monolog.logger.app']
我无法使用(或通过转储查看)config_prod.yml中定义的处理程序。由于我认为其他“ fingers_crossed”处理程序可能会干扰我,因此将它们放在顶部。
我想知道,为什么以上(记录的)方法都不起作用?
答案 0 :(得分:2)
处理程序
monolog:
handlers:
handler1: ...
handler2: ...
自动注入@logger service中。
您似乎需要新自定义记录器。请阅读有关The DependencyInjection Component
的信息services:
app_generic:
....
app_api:
....
app_response:
....
custom_logger:
class: Monolog\Logger
arguments: ["my logger", ["@app_generic", "@app_api", "@app_response"]
app.app_logger:
class: AppBundle\Classes\AppLogger
arguments: ['@custom_logger']
calls:
- [init, ['%app_logging_config%']