加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Symfony 2.1 – 在控制器中切换Monolog通道

发布时间:2020-12-13 13:22:01 所属栏目:PHP教程 来源:网络整理
导读:我想登录与通常的dev.log或prod.log不同的文件 我知道这可以用不同的通道完成,我在几个服务中使用它,但我不太清楚在控制器中切换Monolog通道. 在服务中,您只需通过服务定义中的tags属性定义通道,但是如何在控制器中执行此操作,或者在特定操作中更好? 我知道
我想登录与通常的dev.log或prod.log不同的文件

我知道这可以用不同的通道完成,我在几个服务中使用它,但我不太清楚在控制器中切换Monolog通道.

在服务中,您只需通过服务定义中的tags属性定义通道,但是如何在控制器中执行此操作,或者在特定操作中更好?

我知道可能的解决方案是:Symfony 2 : Log into a specific file

但是,仅仅为了记录到自定义文件来定义两个新服务似乎有些过分.

唯一的方法是定义 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’)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读