application.conf
にそのような構成があることがわかりました。
# If enabled, log SQL statements being executed.
db.default.logStatements=true
有効にしましたが、実行されたSQLをログに記録したログファイルが見つかりません。
どこで見つけることができますか、それとも何かが恋しいですか?
確認してください:
db.default.logStatements=true
この設定は、実際にはplay2で使用される接続プールであるbonecpの設定です。
カスタムロガー構成をconf/logger.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>
com.jlbox.bonecp
はbonecp
用で、play
とapplication
はplay2用です。
application.conf
のロガー設定をコメント化します。
# 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
再生を再開すると、実行されたすべてのSQL(パラメーター値を含む)が表示されます。
私の知る限り、これはPlay2.4.2では機能しなくなりました。デフォルトの接続プールエンジンがHikariCPに切り替えられました。
これをapplication.confに追加し、以下の指示に従ってください。物事はうまくいくはずです:
Application.conf
db.default.pool = "bonecp"
db.default.bonecp.logStatements=true
conf/logger.xmlカスタムロガー構成をconf /logger.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>
以下をapplication.confに追加するだけです(play 2.2.1で機能します)
db.default.logStatements=true
logger.com.jolbox.bonecp=DEBUG
HikariCP(つまり、Play 2.4以降)については、 https://github.com/brettwooldridge/HikariCP/wiki/JDBC-Logging を参照してください。
現時点では、HikariCPには本質的にJDBCロギングは含まれていません。これは意識的な決定であり、見落としや未開発の将来のロードマップ項目ではありません。ほぼすべての主要なデータベースには、独自にログを記録できるJDBCドライバーがあります。そうでない場合は、log4jdbc-log4j2が適切なオプションです。
このwikiページには、log4jdbc-log4j2だけでなく、一般的なデータベースのロギングを有効にする方法が記載されています。
Log4jdbc-log4j2の場合:"org.bgee.log4jdbc-log4j2" % "log4jdbc-log4j2-jdbc4.1" % "1.16"
をlibraryDependencies
に追加します。構成については、 https://code.google.com/archive/p/log4jdbc-log4j2/ で説明されています。