私は別のチャンネルのロガーを別のファイルに設定しましたが、私にとってはうまくいきません。それは仕事ですが、尖ったファイルではなくコンソールに書き出します。 そして、チャンネル検索でログをファイルに書き込む必要があります。ここで が私のコードです:Symfony 3のログインに不都合なもの
#app/config/config_dev.yml
monolog:
handlers:
search:
type: stream
level: error
path: "%kernel.logs_dir%/search_log.log"
channels: [search]
main:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
channels: [!event, !search]
console:
type: console
channels: [!event, !doctrine, !search]
定義されたサービス:
#MyBundle/Resources/config/services.yml
services:
app.logger_search:
class: Symfony\Bridge\Monolog\Logger
arguments: ["@logger"]
tags:
- {name: monolog.logger, channel: search}
今、サービスを使用し、それをテストしよう:
#MyController.php
/**
* @Route("/test")
*/
public function test()
{
$this->get("app.logger_search")->error("Test");
return $this->json("test");
}
しかし、それはファイルのinstedコンソールに書き込みます。 コンソール私はサーバをどこで実行したのですか:php bin\console server:run
。
私は自分のクラスの各チャンネルに新しいインスタンスを作成する必要があると理解しましたか? 例: private $ loggerSearch; private $ logger; または私は別の方法で何かできますか? – Haygo
他の方法でやり直すべきでしょうか。私は自分の答えを更新しました。 – yceruto
ありがとうございました。はい、私はそれを使用する場合はどのように各チャネルのログファイルにユニークなpthを与えることができますか? – Haygo