2012-11-23 70 views
0

我有一個Restlet webservice,我想刪除Restlet在發出請求時創建的日誌中的調試語句。目前我使用這個代碼通過這樣的記錄的Restlet我的日誌文件,而不是控制檯輸出重定向:Restlet 2.1如何將日誌記錄更改爲log4j

Slf4jLoggerFacade loggerFacade = new Slf4jLoggerFacade(); 
Engine.getInstance().setLoggerFacade(loggerFacade); 

在我的log4j.properties文件我有這樣的:

log4j.rootLogger=WARNING, LOGFILE 

我的問題是它仍然在日誌中顯示調試條目,說明它收到了請求。由於所有調試語句,這會導致日誌文件成爲一個巨大的文件大小。

我也試過這種刪除調試語句,但它沒有工作:

Engine.setLogLevel(Level.WARNING); 

以及嘗試這樣做:

Engine.setRestletLogLevel(Level.WARNING); 

爲什麼我的log4j.properties文件不工作?

下面是從日誌一些調試條目,我想刪除:

11月29日00:00:01 DEBUG org.restlet日誌主機IP:8182
11月29日00:00:01 DEBUG組織.restlet日誌連接:保持活動
Nov 29 00:00:01 DEBUG t.SpringComponent.ServerRouter fine默認虛擬主機選中
Nov 29 00:00:01 DEBUG t.SpringComponent.ServerRouter fine基本URI:「http: // IP:8182" 。剩餘部分:「/ getFoo?foo = Foo%2Ffoo & fileName = foo.bin」

回答

1

解決它!這不是一個Restlet問題,更不是一個不知道的log4j。我將log4j級別設置爲WARNING而不是WARN。這是我在log4j中的設置,解決了我的問題。 :)

log4j.rootLogger=ERROR, LOGFILE 
log4j.logger.org.restlet=WARN 
log4j.logger.org.springframework=WARN 
2

您能否精確地瞭解上下文的一些元素:是在servlet容器內部運行的應用程序?你使用什麼樣的服務器連接器? 由於我沒有清楚地看到日誌中放置了哪種調試跟蹤,因此您可以提供一個示例嗎? 你還在使用Restlet-2.0嗎?

最好的問候, 蒂埃裏·布瓦洛

+0

這似乎是一個[的Restlet團隊成員(http://www.restlet.com/company/team#thierry-boileau)和「的Restlet在行動」的合着者! @ user1301115您應該將您的姓名添加到您的個人資料中。 :-) – Jonathan

+0

@ user1301115 Web服務不在servlet容器內運行。它是獨立的。我正在使用默認的服務器連接器。我正在使用Restlet 2.1 JSE。感謝您的幫助。 :) – ColinMc