13

質問を投稿する前にたくさん検索しました。明確な答えが見つからなかったので、ここにあります。

dev.logまたはprod.logなどの別のログファイルにメッセージを記録したい。私はSymfonyのコアメッセージによって汚染されないファイルを意味します。モノログでロガーとハンドラーについて聞いたが、それはあまり明確ではない。

コントローラ、モデルから特定のログファイルにメッセージを記録するにはどうすればよいですか?

4

2 に答える 2

24

config.yml ファイルではなく、services.yml ファイルに情報を追加する必要があります。

だからservices.yml(またはservices.xml) あなたは持っています

my_service.logger:
    class:     Symfony\Bridge\Monolog\Logger
    arguments: [app]
    calls:
        - [pushHandler, [@my_service.logger_handler]]

my_service.logger_handler:
    class:     Monolog\Handler\StreamHandler       
    arguments: [%kernel.logs_dir%/%kernel.environment%.admin.log, 200]

コントローラーアクションでは、次を使用します。

$logger = $this->get('my_service.logger');
于 2012-02-01T16:43:44.160 に答える
2

上記の答えは、私にとっては完全にうまくいきました。私の構成はyamlではなくxmlであったため、それを適応させる必要がありました。

これはまったく同じ構成ですが、xml を使用しています。

<service id="my_service.logger" class="Symfony\Bridge\Monolog\Logger">
    <argument type="string">app</argument>
    <call method="pushHandler">
        <argument type="service" id="my_service.logger_handler" />
    </call>
</service>
<service id="my_service.logger_handler" class="Monolog\Handler\StreamHandler">
    <argument>type="string">%kernel.logs_dir%/%kernel.environment%.license.log</argument>
    <argument type="string">200</argument>
</service>
于 2013-08-27T06:51:33.150 に答える