Entity Frameworkで実行されたSQL文のログ

EF(Entity Framework)を少しいじってみようと思い、SQL文のログ出力機能を探したのだが、既存機能で提供されて無いようです。ObjectQueryやEntityCommandのToTraceStringメソッドで一部取得できるのだが、実行されるすべてのSQL文を出力は提供されていない模様。
Profilerなどのアイデアもあるが、SQLのロギングはデータアクセスレイヤの基本中の基本機能と考えているので、.NETレベルで何とか提供したい。
いろいろ調べていると、EFはRDBMSごとにProviderを提供されているので、独自のProviderを作成すれば良いかもということで調べたところ、ADO.NET Orcas: Sample Provider にサンプルを発見。ここに最新版があったのでダウンロードして試した。少し改造してSqlCommandのStatementCompletedイベントを利用してロギングすると難なく動いた。とりあえず、これでいろいろ試せそうです。
#EFの拡張性の確認もできたのでよかった