logging in symfony 2.3


logging in symfony 2.3

我正试图从任何地方向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