Bản cập nhật 2019:log4jdbc đã không được duy trì kể từ năm 2015. p6spy dường như vẫn đang được duy trì tích cực.
Câu trả lời ban đầu
Có rất nhiều khuôn khổ Spy có sẵn cho mục đích này, vui lòng kiểm tra log4jdbc, đây là những gì bạn đang tìm kiếm.
Tính năng
- Hỗ trợ đầy đủ cho JDBC 3 và JDBC 4!
- Dễ dàng định cấu hình, trong hầu hết các trường hợp, bạn cần thay đổi tên lớp trình điều khiển thành tonet.sf.log4jdbc.DriverSpy và thêm "jdbc:log4" vào urljdbc hiện có của bạn, thiết lập danh mục ghi nhật ký của bạn và bạn đã sẵn sàng đi!
- Trong đầu ra đã ghi, đối với các câu lệnh đã chuẩn bị, các đối số liên kết được chèn tự động vào đầu ra SQL. Điều này cải thiện đáng kể khả năng đọc và gỡ lỗi cho nhiều trường hợp.
- Thông tin thời gian SQL có thể được tạo để giúp xác định thời gian chạy các câu lệnh SQL, giúp xác định các câu lệnh đang chạy quá chậm và dữ liệu này có thể được xử lý sau bằng một công cụ đi kèm để tạo dữ liệu báo cáo hồ sơ nhằm nhanh chóng xác định SQL chậm trong ứng dụng.
- Thông tin số kết nối SQL được tạo để giúp xác định các vấn đề gộp hoặc phân luồng kết nối. Hoạt động với bất kỳ trình điều khiểnJDBC bên dưới nào, với JDK 1.4 trở lên và SLF4J 1.x.
- Phần mềm nguồn mở, được cấp phép theo giấy phép Apache 2.0 thân thiện với doanh nghiệp
Cách sử dụng
- Đặt jar log4jdbc (dựa trên phiên bản JDK) vào classpath của ứng dụng của bạn.
- chọn hệ thống ghi nhật ký để sử dụng, log4j, logback, ghi nhật ký commons..vv được hỗ trợ
- Đặt lớp trình điều khiển JDBC của bạn thành net.sf.log4jdbc.DriverSpy trong cấu hình ứng dụng của bạn. Trình điều khiển cơ bản đang được theo dõi trong nhiều trường hợp sẽ được tải tự động mà không cần bất kỳ cấu hình bổ sung nào.
-
Thêm jdbc:log4 vào url jdbc bình thường mà bạn đang sử dụng.
Ví dụ:nếu url jdbc bình thường của bạn isjdbc:derby:// localhost:1527 // db-derby-10.2.2.0-bin / databases / MyDatabaset thì bạn sẽ thay đổi nó thành:jdbc:log4jdbc:derby:// localhost:1527 / /db-derby-10.2.2.0-bin/databases/MyDatabase
-
Thiết lập nhật ký của bạn.
jdbc.sqlonly :Chỉ ghi nhật ký SQL. SQL được thực thi trong một câu lệnh đã chuẩn bị sẽ tự động được hiển thị với các đối số ràng buộc của nó được thay thế bằng dữ liệu được ràng buộc tại vị trí đó, để tăng khả năng đọc lên rất nhiều. 1,0
jdbc.sqltiming :Ghi nhật ký SQL, sau khi thực thi, bao gồm thống kê thời gian về thời gian SQL thực thi. 1,0
jdbc.audit :Ghi lại TẤT CẢ các cuộc gọi JDBC ngoại trừ Bộ Kết quả. Đây là một đầu ra rất lớn và thường không cần thiết trừ khi theo dõi một vấn đề JDBC cụ thể. 1,0
jdbc.resultset :Nhiều hơn nữa, bởi vì tất cả các lệnh gọi đến các đối tượng ResultSet đều được ghi lại. 1,0
jdbc.connection :Ghi nhật ký các sự kiện mở và đóng kết nối cũng như kết xuất tất cả các số kết nối đang mở. Điều này rất hữu ích để tìm kiếm các vấn đề rò rỉ kết nối.