gpt4 book ai didi

php - symfony2 命令中的自定义独白日志记录 channel

转载 作者:IT王子 更新时间:2023-10-28 23:54:27 24 4
gpt4 key购买 nike

在此cookbook article ,我们可以看到如何在服务中使用自定义 channel 。但是如何在命令中使用自定义登录 channel ?

我创建了一个 symfony2 命令来执行某些操作。我想使用 monolog 来记录我的命令完成的事情。

实际上,我想在应用程序日志之外的另一个文件中为我的命令写入日志。

最佳答案

任何扩展 ContainerAwareCommand 的自定义命令都可以访问 Symfony 的服务容器。您可以在配置中定义一个登录自定义 channel 的服务。

<services>
<service id="console.logger" parent="monolog.logger_prototype">
<argument index="0">mychannel</argument>
</service>
</services>

您可以通过以下方式从命令访问您的服务

$logger = $this->getContainer()->get('console.logger');

此记录器将使用“mychannel” channel 进行记录。

仅供引用 默认记录器服务记录到 channel “app”。这可以在文件中看到Symfony/Bundle/MonologBu​​ndle/Resources/config/monolog.xml。这也是定义默认 logger 服务的地方。

<services>
<service id="monolog.logger" parent="monolog.logger_prototype" public="false">
<argument index="0">app</argument>
</service>

<service id="logger" alias="monolog.logger" />

<service id="monolog.logger_prototype" class="%monolog.logger.class%" abstract="true">
<argument /><!-- Channel -->
</service>
</services>

关于php - symfony2 命令中的自定义独白日志记录 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7714790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com