Groovy 将通过commons日志记录(由httpbuilder)记录的消息发送到Logback

Groovy 将通过commons日志记录(由httpbuilder)记录的消息发送到Logback,groovy,logback,httpbuilder,Groovy,Logback,Httpbuilder,我试图在groovy中的HTTPBuilder的RESTClient控制台上获取apache httpclient日志。我尝试了各种方法,包括和等其他一些建议,但都没有效果 最后,在经历了很多挫折之后,我从中得到了一些帮助,虽然这不是一个干净的解决方案,但它完成了工作——我现在确实得到了电线日志 下面是一些示例代码: // test.groovy import groovyx.net.http.RESTClient import java.util.logging.ConsoleHandler

我试图在groovy中的HTTPBuilder的RESTClient控制台上获取apache httpclient日志。我尝试了各种方法,包括和等其他一些建议,但都没有效果

最后,在经历了很多挫折之后,我从中得到了一些帮助,虽然这不是一个干净的解决方案,但它完成了工作——我现在确实得到了电线日志

下面是一些示例代码:

// 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 wire日志。我对logback(以及log4j、slf4j和java.util.Logging)非常陌生,因此非常感谢您的帮助

作为一个库HttpClient并不是规定用户必须使用哪个日志框架。因此,HttpClient利用Commons日志包提供的日志接口


您应该使用JCL到SLF4j桥接器通过SLF4j处理程序处理应用程序的JCL活动。请参见

恐怕我不理解这个问题。我希望能够在logback://删除默认记录器…//中执行java.util.logging功能(上面给出的实际代码)将所有日志记录到ConsoleNote:关于如何将JUL(java.util.logging)发送到Logback是相关的(但由于本例中的根本问题是将commons日志发送到Logback,所以它不是重复的)。这对我来说很有效。只需在“org.slf4j:jcl-over-slf4j:1.7.13”或任何最新/兼容版本中添加依赖项即可。