如何在标记服务的独白处理程序中使用定义的通道?
How can one use a defined channel, in monolog handler from a tagged service?
我有以下独白处理程序定义:
# 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 中,我的目的是使用上述定义的处理程序数组注入 monolog (@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, I was going for this 方法,只需在服务定义上添加标签:
app.logger:
arguments: ['@logger']
tags:
- { name: monolog.logger, channel: app }
channels: ['app']
或者甚至(如果我理解正确的话),添加一个 channels: ['app']
键并在服务参数中使用这个:
app.logger:
arguments: ['@monolog.logger.app']
我无法使用(或通过转储查看)config_prod.yml 中定义的处理程序。我将它们放在顶部是因为我认为其他 "fingers_crossed" 处理程序可能会干扰。
我想知道,为什么上述(已记录的)方法似乎都不起作用?
处理程序在
monolog:
handlers:
handler1: ...
handler2: ...
自动注入 @logger service。
您似乎需要新 自定义记录器。请阅读 The DependencyInjection Component
创建依赖关系
services:
app_generic:
....
app_api:
....
app_response:
....
创建custom_logger服务
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%']
我有以下独白处理程序定义:
# 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 中,我的目的是使用上述定义的处理程序数组注入 monolog (@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, I was going for this 方法,只需在服务定义上添加标签:
app.logger:
arguments: ['@logger']
tags:
- { name: monolog.logger, channel: app }
channels: ['app']
或者甚至(如果我理解正确的话),添加一个 channels: ['app']
键并在服务参数中使用这个:
app.logger:
arguments: ['@monolog.logger.app']
我无法使用(或通过转储查看)config_prod.yml 中定义的处理程序。我将它们放在顶部是因为我认为其他 "fingers_crossed" 处理程序可能会干扰。
我想知道,为什么上述(已记录的)方法似乎都不起作用?
处理程序在
monolog:
handlers:
handler1: ...
handler2: ...
自动注入 @logger service。
您似乎需要新 自定义记录器。请阅读 The DependencyInjection Component
创建依赖关系
services:
app_generic:
....
app_api:
....
app_response:
....
创建custom_logger服务
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%']