我想在常規的HTTPBuilder的RESTClient控制檯上獲得Apache HTTPCLIOG日誌。我嘗試了各種方法,包括standard instructions和其他一些建議,如this和this,但無濟於事。發送通過公共日誌記錄(通過httpbuilder)記錄到Logback的消息
最後,經過很多挫折之後,我從這個SO question得到了一些幫助,雖然這不是一個乾淨的解決方案,但它完成了工作 - 現在我確實得到了線路日誌。
下面是一些示例代碼:
// test.groovy
import groovyx.net.http.RESTClient
import java.util.logging.ConsoleHandler
import java.util.logging.Level
import java.util.logging.Logger
// Remove default loggers
def logger=Logger.getLogger('')
def handlers=logger.handlers
handlers.each() { handler->logger.removeHandler(handler) }
// Log ALL to Console
logger.setLevel Level.FINE
def consoleHandler=new ConsoleHandler()
consoleHandler.setLevel Level.FINE
logger.addHandler(consoleHandler)
def myclient = new RESTClient('https://www.google.com/search')
def resp = myclient.get(queryString: 'q=httpclient')
現在唯一的問題是,我想改用的logback java.util.logging中的這一點,因爲我的應用程序的其餘部分已經使用的logback。
我現在試圖獲得上述等效logback.groovy配置,但它不工作:
// logback.groovy
appender("CONSOLE", ConsoleAppender)
{
encoder(PatternLayoutEncoder)
{
pattern = "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
}
}
root DEBUG, ["CONSOLE"]
logger "groovyx.net.http.HttpURLClient", DEBUG, ["CONSOLE"]
logger "org.apache.http", DEBUG, ["CONSOLE"]
logger "org.apache.http.headers", DEBUG, ["CONSOLE"]
logger "org.apache.http.wire", DEBUG, ["CONSOLE"]
我沒有得到任何Apache頭或Apache線日誌。我是非常新的logback(和log4j和slf4j和java.util.Logging),所以你的幫助將不勝感激。
恐怕我不明白這個問題。 – Ceki
我希望能夠在logback中執行這個java.util.logging功能(上面給出的實際代碼): //刪除默認記錄器 ... //將所有日誌記錄到控制檯 – noumenon
注意:[this answer a question ](https://stackoverflow.com/a/20407321/1078886)關於如何將JUL(java.util.logging)發送到Logback是相關的(但由於在這種情況下的底層問題是發送_commons logging_到Logback它不是重複)。 –