2010-05-26 134 views
0

我試圖更改日誌記錄級別,以停止顯示數百萬這樣的:如何設置日誌記錄級別JDBCDriverLogging

<May 26, 2010 10:26:02 AM EDT> <Debug> <JDBCDriverLogging> <000000> <2336: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |    |> 

我已經嘗試添加這對我的Java行:

-Djava.util.logging.config.file=/foo/bar/logging.properties 

隨着這作爲我的logging.properties文件:

handlers = java.util.logging.ConsoleHandler 
.level = OFF 
java.util.logging.ConsoleHandler.level = INFO 

沒有運氣。我試過這個:

Logger logger = Logger.getLogger("com.microsoft.sqlserver.jdbc"); 
Handler handler = new ConsoleHandler(); 
handler.setLevel(Level.INFO); 
logger.addHandler(handler); 
logger.setLevel(Level.INFO); 
logger.setUseParentHandlers(false); 

沒有運氣。我搜索了周圍,所有的想法圍繞這兩個選項中的一個,所以我一定在做其他的事情。

我正在使用jtds-1.2.2.jar。

感謝您的任何建議。

回答

1
net.sourceforge.jtds.util.Logger.setLogWriter(new NullPrintWriter()) 

禁用記錄驅動程序。 NullPrintWriter既可以在Apache Commons IO軟件包中找到,也可以通過擴展PrintStream並將其替換爲無操作的打印操作來實現。

+0

好吧,把你的線在logging.properties文件,但沒有改變。 – Scott 2010-06-09 12:47:19

+0

然後我假設驅動程序不使用典型的Loggername = Class約定,而是登錄名爲「JDBCDriverLogging」的記錄器。所以你必須添加「JDBCDriverLogging.level = FATAL」這一行。請回應這是如何解決你的。 – Daniel 2010-06-09 17:29:32

+0

嗯,我在日誌記錄屬性文件和代碼中都試過,沒有運氣。不知道這是否重要,但這是日誌中的第一條調試行: <000000> 感謝您的持續幫助。 – Scott 2010-06-10 21:45:22

1

嗯,我懷疑你現在需要這個,但我來到你的問題試圖找到一種方法來激活jTDS日誌記錄,相反,你需要什麼。

我可以找得到的記錄工作的唯一方法是硬編碼想在這個問題上記錄儀:Log4J: How do I redirect an OutputStream or Writer to logger's writer(s)?並把它傳遞給JTDS的Logger.setLogWriter()

PrintWriter logger = new PrintWriter(
      new LogOutputStream(
        LoggerFactory.getLogger(Logger.class), 
        Level.DEBUG)); 
    Logger.setLogWriter(logger); 

也許在6年時間別人會發現這個有用;)