我想登录与通常的dev.log或prod.log不同的文件
我知道这可以用不同的通道完成,我在几个服务中使用它,但我不太清楚在控制器中切换Monolog通道.
在服务中,您只需通过服务定义中的tags属性定义通道,但是如何在控制器中执行此操作,或者在特定操作中更好?
唯一的方法是定义
controller as a service并使用自定义通道注入自定义记录器.
由于频道是自动创建的,目前没有其他办法,但这是一个有趣的请求,你不是第一个,所以我创建了一个issue on MonologBundle,允许在捆绑配置级别定义频道.这样你就可以使用$this-> get(‘monolog.logger.mychannel’)从控制器中获取正确的记录器(如果通道存在,你已经可以这样做了,但如果你想为控制器设置自定义通道则不行没有别的用途).
更新:
从symfony / monolog-bundle 2.4.0开始,您可以将其他渠道定义为:
monolog: channels: ["foo","bar"]
然后您可以将其检索为$this-> get(‘monolog.logger.mychannel’)