2010-06-04 24 views
32

hey tất cả, tôi chỉ mới bắt đầu với c3p0 để kết nối cơ sở dữ liệu tổng hợp. Nó gắn nó vào đầu ra log4j của tôi. Làm cách nào để đặt đăng xuất hoặc ít nhất ở mức SEVERE chỉ cho c3p0? Tôi đã thử tinh chỉnh các tập tin thuộc tính nhưng không chắc chắn nó đang được chọn đúng cách.Tôi làm cách nào để tắt đăng nhập trong java c3p0 kết nối gộp lib?

bất kỳ ý tưởng nào về cách tốt nhất để tắt tính năng này?

nhờ

UPDATE: này dường như làm việc trong log4j.properties nộp

log4j.logger.com.mchange.v2.c3p0.impl=INFO 

log4j.logger.com.mchange=INFO 

Trả lời

20

Nếu bạn sử dụng một tập tin log4j.xml bạn có thể đơn giản định nghĩa một logger cho gói C3PO:

<logger name="com.mchange.v2.c3p0"> 
    <level value="SEVERE"/> 
</logger> 

Có các phương pháp tương tự cho log4j.properties. Tôi nghĩ rằng nó chỉ là:

log4j.logger.com.mchange.v2.c3p0=SEVERE 
+1

Tôi hiện đang sử dụng tệp log4j.properties, bất kỳ ý tưởng nào về cách thực hiện trong đó? – James

+2

đã thêm một log4j.tài sản logger ví dụ – fasseg

+0

cảm ơn! Tôi đã phải tinh chỉnh nó một chút nhưng các tập tin log4j.properties làm việc :) – James

1

Bạn có thể thiết lập mức độ đăng nhập bằng cách thêm dòng sau trong log4j.xml Logging ít nhất là ở mức Lỗi là mong muốn.

< category name="com.mchange" additivity="false"> 
     < priority value="ERROR"/> 
     < appender-ref ref="ASYNC"/> 
    </ category> 

Nếu bạn thực sự muốn tắt C3P0 khai thác gỗ thiết lập thuộc tính com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=OFF

trong c3p0-Config.properties

hoặc bạn có thể trực tiếp đặt này trong mã như một tài sản Hệ thống System.setProperty("com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL",MLevel.OFF);

+0

Không làm việc cho tôi. –

+0

Thêm một dòng bổ sung vào tệp thuộc tính đã làm việc cho tôi, 'com.mchange.v2.log.MLog = com.mchange.v2.log.FallbackMLog' –

2

Tôi đã khắc phục sự cố với dòng mã:

com.mchange.v2.log.MLog.getLogger().setLevel(MLevel.INFO); 

Tôi đang sử dụng log4j trong ứng dụng của mình.

+1

Có, điều này phù hợp với tôi! – surfealokesea

33

Đối với những người KHÔNG sử dụng tệp cấu hình, chỉ cần thêm nội dung sau vào mã, trước khi tải hồ bơi kết nối.

Properties p = new Properties(System.getProperties()); 
p.put("com.mchange.v2.log.MLog", "com.mchange.v2.log.FallbackMLog"); 
p.put("com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL", "OFF"); // Off or any other level 
System.setProperties(p); 
+0

'nhập java.util.Properties;' – thatWiseGuy

4

tôi đã nhận được thông điệp như sau:

Tue Feb 12 13:42:01 EST 2013 INFO: Profiler Event: [FETCH] at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76) duration: 0 ms, connection-id: 67, statement-id: 23, resultset-id: 27 

này khiến tôi nghĩ rằng C3P0 đã đăng những thông điệp này. Thực ra thông điệp đến từ kết nối mysql vì tôi kích hoạt hồ sơ bằng cách sử dụng một chuỗi kết nối như thế này:

jdbc:mysql://localhost/database?profileSQL=true 

Di ?profileSQL=true để làm cho nó dừng lại đăng những thông điệp này.

1

Tôi đang làm việc trên clojure, thông qua korma và cho cuộc sống của tôi tôi không thể tải bất kỳ tập tin thuộc tính nào (tôi mới dùng Clojure nên tôi đổ lỗi cho bản thân mình). Nếu bạn đang ở trong một chiếc thuyền tương tự, sau đây có thể giúp bạn ra ngoài.

(System/setProperties 
    (doto (java.util.Properties. (System/getProperties)) 
    (.put "com.mchange.v2.log.MLog" "com.mchange.v2.log.FallbackMLog") 
    (.put "com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL" "OFF"))) 

Về cơ bản, đây là một cổng đinh hương của câu trả lời của Philippe Carriere ở trên, cảm ơn bạn rất nhiều!

+1

Sử dụng Korma Tôi cần sử dụng mã này trước khi yêu cầu không gian tên của nó. – boechat107

+0

Có, xin lỗi quên đề cập đến điều đó. Nếu Korma được nạp, thì các giá trị mặc định để các dòng ở trên sẽ không ghi đè lên những gì đã được thiết lập. – a4word

Các vấn đề liên quan