私はSymfony2にかなり慣れていないので、SQLクエリ(タイミングを含む)を他のアプリケーションと同じログファイルに記録する方法を探しています。
ドキュメントから私が判断できることから、これはすべてそのままで動作するはずですが、数時間試した後、私が間違っていることを理解することができません。
config_dev.yml
monolog:
handlers:
doctrine:
action_level: debug
type: stream
path: %kernel.logs_dir%/%kernel.environment%_doctrine.log
channels: doctrine
config.yml
# Doctrine Configuration
doctrine:
dbal:
driver: "%database_driver%"
Host: "%database_Host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
logging: true
profiling: true
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
ログファイルがまったく生成されません。私の他のロギングハンドラは正常に動作します(ここにはリストされていません)。
ここでどこが間違っているのか、そしてこれが本当に正しいアプローチであるのか、またはここで述べたように、SQLロガーを実装する新しいクラスを実装する必要があるのかも疑問に思っています: http://vvv.tobiassjosten .net/symfony/logging-doctrine-queries-in-symfony2 /
しかし、プロジェクト全体に適用するために、構成/サービスを介してプラグインする方法がわかりません(たとえば、すべてのコントローラーで呼び出す必要はありません)。
助けてくれてありがとう!
実際にdoctrine 2クエリをログに記録する必要があると確信している場合は、Doctrineの設定でこれを設定できます。
connections:
# A collection of different named connections (e.g. default, conn2, etc)
default:
# when true, queries are logged to a "doctrine" monolog channel
logging: true
http://symfony.com/doc/current/reference/configuration/doctrine.html
そして、モノログをログに設定するdoctrineドキュメントで説明されているように: http://symfony.com/doc/current/cookbook/logging/channels_handlers.html
同様の問題は symfony 2.4がdoctrine prod環境のチャネル)を取得できない で見つけることができます