我正在尝试将我自己的消息从任何地方写入 Symfony 2.3 的日志,而不仅仅是控制器(我意识到你可以只做一个"$this->get('logger')"
.
我已经看到在 Symfony 1 中您可以使用sfContext
,但在 2.3 中该类似乎不再是一个可行的选择。
任何帮助表示赞赏。
Symfony2 具有面向服务的架构(http://en.wikipedia.org/wiki/Service-orientated_architecture)并且logger
是服务之一(默认为 Monolog)。在控制器中,您可以通过 访问服务$this->get('service_name')
。以下是有关服务容器的更多信息:http: //symfony.com/doc/current/book/service_container.html#what-is-a-service-container。如果你想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
。