如何在java c3p0连接池库中关闭日志记录?

pbwdgjma  于 2023-05-15  发布在  Java
关注(0)|答案(7)|浏览(320)

大家好,我刚刚开始使用c3p0进行数据库连接池。它目前正在将自己附加到我的log4j输出中。如何仅为c3p0设置注销或至少设置为严重级别?我试着调整属性文件,但不确定它是否被正确拾取。
有什么办法能最好地关掉它吗
谢谢
更新:这似乎在www.example.com文件中工作log4j.properties

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

log4j.logger.com.mchange=INFO
qhhrdooz

qhhrdooz1#

对于那些不使用配置文件的人,只需在加载连接池之前在代码中添加以下内容。

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);
rta7y2nd

rta7y2nd2#

如果你使用log4j.xml文件,你可以简单地为c3po包定义一个logger:

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

log4j.properties有类似的方法。我觉得就是

log4j.logger.com.mchange.v2.c3p0=SEVERE
kuarbcqp

kuarbcqp3#

我收到的消息如下:

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

这让我认为C3P0正在记录这些消息。实际上,消息来自mysql连接器,因为我通过使用这样的连接字符串启用了分析:

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

删除?profileSQL=true以使其停止记录这些消息。

7cwmlq89

7cwmlq894#

我修复了一行代码的问题:

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

我在我的应用程序中使用log4j。

ou6hu8tu

ou6hu8tu5#

您可以通过在log4j.xml中添加以下行来设置日志级别。

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

如果确实要关闭c3P0日志记录,请设置属性com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL=OFF
在c3p0-Config.properties
也可以直接在代码中将其设置为系统属性System.setProperty("com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL",MLevel.OFF);

bnl4lu3b

bnl4lu3b6#

我在clojure上工作,通过korma,我的生活中我无法加载任何属性文件(我是clojure的新手,所以我责怪自己)。如果你在一条类似的船上,下面的内容可能会帮助你。

(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")))

这基本上是Philippe卡里埃上面的答案的一个clojure端口,非常感谢!

eqfvzcg8

eqfvzcg87#

如果您使用的是Spring,则可以通过在www.example.com中配置来禁用c3p0日志记录application.properties:

logging.level.com.mchange.v2.c3p0=off

相关问题