2017-04-13 51 views
0

我正在使用Hibernatejava.util.Logger類來記錄我的項目中的日誌。我有一個單獨的配置文件。我能夠展示,而不是由日誌配置文件org.hibernate.SQL.level屬性設置爲ALL顯示SQL查詢之間進行切換,但我無法弄清楚如何做到這一點編程(我想通過運行參數,但不必處理這個問題使用兩個獨立的日誌配置文件)。以編程方式設置記錄器屬性以顯示休眠查詢

到目前爲止,我已經嘗試在休眠Configuration類中設置此參數,無濟於事(屬性正在設置,我加倍檢查,但沒有查詢顯示)。

然後我覺得它必須由Logger類自己處理,但LogManager沒有任何設置屬性的方法。通過網絡瀏覽引導我走向FileHandler班,但我只能設置'常用'日誌屬性(如patternlevel等)。

這是否意味着我錯在認爲我必須更改Logger類,它應該事實上設置在休眠的Configuration?如果是這樣的話,爲什麼它不起作用?

回答

0

......我不知道如何以編程方式(我想通過運行參數處理這個問題,但不必使用兩個單獨的日誌配置文件)。

我會假設當前情況解決了問題,因爲日誌配置是使用運行時參數設置的。也就是說,一般的方法是獲取並存儲對記錄器的強引用並更改記錄器的屬性。

private static final Logger hardRef = Logger.getLogger("org.hibernate.SQL"); 
static { 
    if (traceSql()) { 
     hardRef.setLevel(Level.ALL); 
    } 
} 

private static boolean traceSql() { 
    return true; //@todo Add code. 
} 
相關問題