我正试图从任何地方向Symfony 2.3中的日志写入我自己的消息,而不仅仅是控制器(我意识到你只需要执行"$this->get('logger')"
.
我已经看到在Symfony 1中可以使用sfContext
,但在2.3中,该类似乎不再是一个可行的选择。
感谢您的帮助。
Symfony2具有面向服务的体系结构(http://en.wikipedia.org/wiki/Service-oriented_architecture)并且CCD_ 3是服务之一(默认为Monolog)。在控制器中,您可以通过$this->get('service_name')
访问服务。以下是有关服务容器的更多信息:http://symfony.com/doc/current/book/service_container.html#what-是一个服务容器。如果您想在另一个服务中使用logger
,您必须定义服务并注入logger
服务。示例:
# section with defined service in your config.yml file (by default in config.yml)
services:
# your service name
my_service:
# your class name
class: Fully'Qualified'Loader'Class'Name
# arguments passed to service constructor. In this case @logger
arguments: ["@logger"]
# tags, info: http://symfony.com/doc/current/components/dependency_injection/tags.html
tags:
- { name: monolog.logger, channel: acme }
此外,您应该熟悉依赖项注入文档:http://symfony.com/doc/current/components/dependency_injection/index.html
我希望这能有所帮助。如果没有,请告诉我您想在哪里使用logger
。