2012-05-10 15 views
0

ApacheでHTTPBuilderのRESTClientのログをgroovyのコンソールに記録しようとしています。私はstandard instructionsthisthisのようないくつかの提案を含むさまざまなアプローチを試みましたが、役に立たなかった。Commonsログ(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)を非常に新しくしているので、あなたの助けに感謝します。

+0

私は恐れている、私は質問を理解していない。 – Ceki

+0

ログバックでこのjava.util.logging機能(上記の実際のコード)を実行できるようにしたい: //デフォルトのロガーを削除する ... //すべてをコンソールにログする – noumenon

+0

注:この質問に対する回答](https://stackoverflow.com/a/20407321/1078886)JUL(java.util.logging)をLogbackに送信する方法については関連しています。(この場合の根本的な問題は_commons logging_をLogbackに送信しているためです。重複)。 –

答えて

2

ライブラリを使用するHttpClientは、ユーザーが使用する必要があるログフレームワークを指定するものではありません。そのためのHttpClientはあなたがSLF4Jハンドラを経由してアプリケーションのJCLの活動を処理するためにSLF4JブリッジにJCLを使用する必要がありますパッケージ

ロギング・コモンズが提供するログ・インターフェースを利用しています。 http://www.slf4j.org/legacy.html#jcl-over-slf4j

+0

これは私のために働いた。 'org.slf4j:jcl-over-slf4j:1.7.13'や、最新の/互換性のあるバージョンがあればそれに依存するものを追加するだけです。 – Mikezx6r

関連する問題