[Play][DB]発行されたクエリをコンソールに出力する
2013年2月28日木曜日
Play frameworkのロガーにはLog4jが使用されていますので、ログを簡単に出力することができます(Javaなら「play.Logger.*」を、Scalaなら「play.api._」をインポートするとつかえるようになります)。Anorm等で発行されたクエリをコンソール上に表示できるような設定を紹介したいと思います。クエリの確認にいちいちSqlQueryクラスのqueryメソッド等を利用しなくて済むので便利です。
環境はPlay framework 2.1.0です。
Logger.info等のメソッドの場合、デフォルトでコンソールに表示されるようになっています。ここでは発行されたクエリをコンソール上に表示する方法を紹介します。まず、「application.conf」に以下の行を追加します。
db.default.logStatements=true
これでDBのデバッグ出力が有効になります。さらに、以下の行をコメントアウトして、logbackの設定を無効化します。
# Logger
# ~~~~~
# You can also configure logback (http://logback.qos.ch/), by providing a logger.xml file in the conf directory .
# Root logger:
# logger.root=ERROR
# Logger used by the framework:
# logger.play=INFO
# Logger provided to your application:
# logger.application=DEBUG
上記の設定は「application.conf」の一番下にあるはずです。
次に、「conf」フォルダに「logger.xml」というXMLファイルを生成し、以下のXMLを記述して保存してください。
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%-5level - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.jolbox.bonecp" level="DEBUG">
<appender-ref ref="STDOUT" />
</logger>
<logger name="play" level="DEBUG">
<appender-ref ref="STDOUT" />
</logger>
<logger name="application" level="DEBUG">
<appender-ref ref="STDOUT" />
</logger>
</configuration>
encoder要素が実際に出力されるログのフォーマットです。
あとはplayコンソール上で「reload」コマンドを実行し、プロジェクトを再読み込みするとロギングが有効になります。クエリが発行されるとコンソール上に発行されたクエリが出力されます。便利!
0 件のコメント :
コメントを投稿