有沒有一種方法可以讓Play框架1.2.5顯示c3p0調試日誌?c3p0與Play Framework 1的日誌?
有人問過這個問題Play email list;至少將以下內容添加到log4j.properties中不起作用:
log4j.logger.com.mchange.v2.c3p0=DEBUG
log4j.category.com.mchange=DEBUG
log4j.logger.com.mchange=DEBUG
有沒有一種方法可以讓Play框架1.2.5顯示c3p0調試日誌?c3p0與Play Framework 1的日誌?
有人問過這個問題Play email list;至少將以下內容添加到log4j.properties中不起作用:
log4j.logger.com.mchange.v2.c3p0=DEBUG
log4j.category.com.mchange=DEBUG
log4j.logger.com.mchange=DEBUG
隨着一些遊戲源代碼的閱讀,DBPlugin:onApplicationStart似乎有以下幾點:
...
System.setProperty("com.mchange.v2.log.MLog", "com.mchange.v2.log.FallbackMLog");
System.setProperty("com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL", "OFF");
ComboPooledDataSource ds = new ComboPooledDataSource();
...
註釋掉這些System.setProperty線,建設當地的罐子後,我能看到C3P0記錄。
不知道是否有一種方法來啓用除此之外的日誌記錄?
你在你的application.conf文件中試過這個嗎?
# Debug SQL statements (logged using DEBUG level):
jpa.debugSQL=true
不知道它是否會給你你需要的日誌,但值得一試。
檢查源代碼,jpa.debugSQL = true以'org.apache.log4j.Logger.getLogger(「org.hibernate.SQL」).setLevel(Level.ALL);'結尾,否則level設爲Level。關閉。所以它會對Hibernate SQL日誌有影響。 – Touko 2013-04-10 04:54:04
在討論中,avfl &斯科特發現與OnApplicationStart工作另一種方式:
package jobs;
import play.jobs.*;
import play.Logger;
@OnApplicationStart
public class C3p0Logging extends Job {
public void doJob() {
Logger.info("Setting custom c3p0 log level");
com.mchange.v2.log.log4j.Log4jMLog.getLogger().setLevel(com.mchange.v2.log.MLevel.FINEST);
}
}
這似乎落得C3P0 FallbackMLog - > System.err的。還沒有找到一種方法來使用這種方法獲取日誌到log4j。
哦。這很糟糕。他們已經通過系統屬性有效關閉了所有c3p0日誌記錄,並且配置日誌記錄庫的優先級最高。這不應該在代碼中完成,但顯然是這樣。你已經做了正確的事情來解決它。 – 2013-04-08 13:57:52