Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara mengaktifkan logging untuk pernyataan SQL saat menggunakan JDBC

Pembaruan 2019:log4jdbc tidak dipelihara sejak 2015. p6spy tampaknya masih aktif dipertahankan.

Jawaban asli

Ada banyak kerangka kerja mata-mata yang tersedia untuk tujuan ini, silakan periksa log4jdbc, saya rasa inilah yang Anda cari.

Fitur

  • Dukungan penuh untuk JDBC 3 dan JDBC 4!
  • Mudah dikonfigurasi, dalam kebanyakan kasus, yang perlu Anda lakukan hanyalah mengubah nama kelas driver tonet.sf.log4jdbc.DriverSpy dan menambahkan "jdbc:log4" ke url jdbc Anda yang ada, mengatur kategori logging Anda dan Anda siap untuk Pergilah!
  • Dalam keluaran yang dicatat, untuk pernyataan yang disiapkan, argumen pengikatan secara otomatis dimasukkan ke dalam keluaran SQL. Ini sangat Meningkatkan keterbacaan dan debugging untuk banyak kasus.
  • Informasi waktu SQL dapat dibuat untuk membantu mengidentifikasi berapa lama pernyataan SQL berjalan, membantu mengidentifikasi pernyataan yang berjalan terlalu lambat dan data ini dapat dikirim ke pemrosesan dengan alat yang disertakan untuk menghasilkan pembuatan profil data laporan untuk mengidentifikasi SQL lambat dengan cepat di Anda aplikasi.
  • Informasi nomor koneksi SQL dibuat untuk membantu mengidentifikasi masalah penyatuan koneksi atau threading. Bekerja dengan driver JDBC yang mendasarinya, dengan JDK 1.4 ke atas, dan SLF4J 1.x.
  • Perangkat lunak sumber terbuka, dilisensikan di bawah lisensi Apache 2.0 yang ramah bisnis

Penggunaan

  • Tempatkan toples log4jdbc (berdasarkan versi JDK) ke dalam classpath aplikasi Anda.
  • pilih sistem logging yang akan digunakan, log4j, logback, commons logging..etc didukung
  • Setel kelas driver JDBC Anda ke net.sf.log4jdbc.DriverSpy dalam konfigurasi aplikasi Anda. Driver dasar yang dimata-matai dalam banyak kasus akan dimuat secara otomatis tanpa konfigurasi tambahan apa pun.
  • Tambahkan jdbc:log4 ke url jdbc normal yang Anda gunakan.

    Misalnya, jika url jdbc normal Anda adalahjdbc:derby://localhost:1527//db-derby-10.2.2.0-bin/databases/MyDatabasemaka Anda akan mengubahnya menjadi:jdbc:log4jdbc:derby://localhost:1527/ /db-derby-10.2.2.0-bin/databases/MyDatabase

  • Siapkan logger Anda.

    jdbc.sqlonly :Log hanya SQL. SQL yang dieksekusi dalam pernyataan yang disiapkan secara otomatis ditampilkan dengan argumen pengikatannya diganti dengan data yang terikat pada posisi itu, untuk keterbacaan yang sangat meningkat. 1.0

    jdbc.sqltiming :Mencatat SQL, pasca-eksekusi, termasuk statistik waktu tentang berapa lama waktu yang dibutuhkan SQL untuk dieksekusi. 1.0

    jdbc.audit :Mencatat SEMUA panggilan JDBC kecuali untuk ResultSets. Ini adalah output yang sangat banyak, dan biasanya tidak diperlukan kecuali melacak masalah JDBC tertentu. 1.0

    jdbc.resultset :Bahkan lebih banyak, karena semua panggilan ke objek ResultSet dicatat. 1.0

    jdbc.connection :Log koneksi membuka dan menutup acara serta membuang semua nomor koneksi terbuka. Ini sangat berguna untuk memburu masalah kebocoran koneksi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa saya tidak bisa memasukkan tanggal ini ke dalam tabel menggunakan sql?

  2. dbms_output ukuran buffer overflow

  3. 9 kueri Printer Oracle Apps Berguna Teratas

  4. Fungsi JSON_QUERY() di Oracle

  5. Hasilkan tanggal acak di Oracle dengan DBMS_RANDOM