아파치를 얻으려고합니다 httpclient는 groovy의 HTTPBuilder의 RESTClient에 대한 콘솔에 기록합니다. 나는 standard instructions과 this과 this과 같은 다른 제안을 포함하여 다양한 방법을 시도했지만 아무 소용이 없습니다.Commons logging (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"]
내가 어떤 아파치 헤더 또는 아파치 와이어 로그를 받고 있지 않다. Logback (및 log4j 및 slf4j 및 java.util.Logging)에 대한 새로운 기능이므로 도움을 주시면 감사하겠습니다.
나는 두렵다. 나는 그 질문을 이해하지 못한다. – Ceki
logback에서이 java.util.logging 기능 (위에서 설명한 실제 코드)을 수행 할 수 있기를 원합니다. // 기본 로거를 제거하십시오 ... // 콘솔에 ALL을 기록하십시오. [ – noumenon
참고 : [이 질문에 대한 대답입니다. ] (https://stackoverflow.com/a/20407321/1078886) JUL (java.util.logging)을 Logback으로 보내는 방법에 관한 내용입니다. (이 경우 기본 문제는 _commons logging_을 Logback에 보내므로 복제). –