2011-11-01 52 views
2

我使用Struts 2.0.11.2,我也不是什麼最近在我的應用程序,我得到的freemarker日誌噸改爲:禁用freemarker的日誌

DEBUG 13201 [freemark](): template/simple/hidden.ftl[en,UTF-8,parsed] cached copy not yet stale; using cached. 

我如何關閉這些惱人的日誌?我知道freemarker.properties文件,但我不知道如何從那裏指定日誌級別。我嘗試了我的代碼中的破解:

freemarker.log.Logger.selectLoggerLibrary(freemarker.log.Logger.LIBRARY_NONE); 

並且對於某些人它不起作用。我沒有使用log4j,只是標準的java日誌記錄。

順便說一句:我不打算改變Struts的版本或日誌框架。

回答

0

看一下你配置的java.util.logging(或公共記錄可能)。如果記錄器說它從FreeMaker記錄調試級別的消息,則FreeMarker將發送調試級別的消息。這就像其他任何圖書館一樣。

禁用FreeMarker的記錄肯定不是一個好主意,因爲你想看到的警告和錯誤。 (LIBRARY_NONE不起作用的原因肯定是你稱它爲時已晚,當某些消息已被記錄時,因此FreeMarker日誌記錄已被初始化。)

+0

我配置的java.util.logging在JRE logging.properties文件本身,它默認情況下不低於登錄INFO事情。無論如何,有些人還在看日誌,有些人卻沒有。我認爲它會記錄LIBRARY_NONE之前的東西只是在某些系統 – German

+0

如果你在classpath有Log4j的1.x中,FreeMarker的會使用,而不是'java.util.logging',所以'logging.properties'不會母校。如果將'org.freemarker.loggerLibrary'系統屬性設置爲'JUL'修復了這個問題(需要FreeMarker 2.3.22),那麼問題很明顯:您還需要配置Log4j。或者更好的是,如果可以,遷移到SLF4J ...如果FreeMarker 2.3.22在類路徑中發現「log4j-over-slf4j」,它將使用SLF4J而不是其他任何東西。 – ddekany