作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在此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/MonologBundle/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/
关注此documentation ,我可以创建许多 channel ,这些 channel 将创建具有以下名称 monolog.logger. 的服务 如何通过 DI 注入(inject)和 Auto
如何在 Laravel 5.1 和 monolog 中指定一个单独的文件来记录 INFO 级别? 最佳答案 如果您想添加另一个 monolog 处理程序,您可以使用应用程序的 configureMon
我是一名优秀的程序员,十分优秀!