清官はロゴ4 jdbcを使ってSQL情報を記録するように教えます.
3821 ワード
一、ロゴ4 jdbc紹介 ロゴ4 jdbcを使って既存のコードを変えずに実行するSQL文とJDBCの実行状況を収集することができます.ここではlogbackを使って実現します.log 4 jを使って実現する必要があるなら、ブログを参照してください.http://www.cnblogs.com/xdp-gacl/p/4081848.html 普段開発されているibatis、mybatis、hibernate、spring jdbcのsqlログ情報は、ビットとパラメータが別々に印刷されているという欠点があります.sqlをPLSQL Developerクライアントにコピーしたいなら、直接実行します.自分ででっち上げる必要があります.ロゴ4 jdbcはjdbc層のログフレームで、プレースホルダとパラメータを全部合わせて表示することができます.直接にsqlをPLSQL Developerにコピーしやすく、navcatなどのクライアントで直接実行して、デバッグ速度を速めます.出力結果は以下の通りです.
(1)log 4 jdbcはlog 4 jしか使えないとは思わないでください.logbackも同様に適用されます.しかし、私の経験は、やはりslaf 4 jを使ってあなたのログフレームを統一的に管理したほうがいいと教えてくれました.
(2)ロゴ4 jdbcをダウンロードするjarパケットのロゴ4 jdbc-1.2.jarおよび依存する関連Jarパケットのlogback-classic-1.1.22.jar、slaf 4 j-appi-1.7.jar、以下のmaven依存パケット:
INFO jdbc.sqltiming - select count(*) as col_0_0_ from shops shop0_ where shop0_.name like '%f%'
{executed in 0 msec}
テストコードの住所:コード:https://github.com/lockbur/spring-data-jpa-log4jdbc-demo.git 二、ロゴ4 jdbcの使用(1)log 4 jdbcはlog 4 jしか使えないとは思わないでください.logbackも同様に適用されます.しかし、私の経験は、やはりslaf 4 jを使ってあなたのログフレームを統一的に管理したほうがいいと教えてくれました.
(2)ロゴ4 jdbcをダウンロードするjarパケットのロゴ4 jdbc-1.2.jarおよび依存する関連Jarパケットのlogback-classic-1.1.22.jar、slaf 4 j-appi-1.7.jar、以下のmaven依存パケット:
<!-- slf4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<!-- logback -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.2</version>
</dependency>
<!-- log4jdbc -->
<dependency>
<groupId>com.googlecode.log4jdbc</groupId>
<artifactId>log4jdbc</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
(3)logback.xmlファイルの構成を修正すると、以下の通りです.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/tmp/logs/spr-data-jdbc.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/tmp/logs/spr-data.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- project default level -->
<logger name="com.spr" level="INFO" />
<!--log4jdbc -->
<logger name="jdbc.sqltiming" level="INFO"/>
<root level="WARN">
<appender-ref ref="console" />
<appender-ref ref="rollingFile" />
</root>
</configuration>
(4)リンクデータベースの駆動をnet.sf.log 4 jdbc.DriverSpyとurlのプレフィックスjdbc:log 4 jdbcに変更する.mysql://localhost:3306/testmysql-connectorを使用しないでください.
db.driver=net.sf.log4jdbc.DriverSpy
db.url=jdbc:log4jdbc:mysql://localhost:3306/test
db.username=root
db.password=Passw0rd
三、上記のような構成をまとめると、アプリケーションが実行するSQL情報をログ4 jdbcで記録することができます.主に生産環境の調整に便利です.ドライバを交換して、この機能を注釈してください.テスト結果は以下の通りです.
: Server startup in 16625 ms
INFO com.spr.controller.ShopController - list shopListPage
INFO jdbc.sqltiming - select count(*) as col_0_0_ from shops shop0_ where shop0_.name like '%f%'
{executed in 1 msec}
INFO jdbc.sqltiming - select shop0_.id as id1_0_, shop0_.employees_number as employee2_0_, shop0_.name as name3_0_,
shop0_.status as status4_0_ from shops shop0_ where shop0_.name like '%f%' limit 25
{executed in 1 msec}
コード:https://github.com/lockbur/spring-data-jpa-log4jdbc-demo.git