ApacheでHTTPBuilderのRESTClientのログをgroovyのコンソールに記録しようとしています。私はstandard instructionsやthisやthisのようないくつかの提案を含むさまざまなアプローチを試みましたが、役に立たなかった。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)を非常に新しくしているので、あなたの助けに感謝します。
私は恐れている、私は質問を理解していない。 – Ceki
ログバックでこのjava.util.logging機能(上記の実際のコード)を実行できるようにしたい: //デフォルトのロガーを削除する ... //すべてをコンソールにログする – noumenon
注:この質問に対する回答](https://stackoverflow.com/a/20407321/1078886)JUL(java.util.logging)をLogbackに送信する方法については関連しています。(この場合の根本的な問題は_commons logging_をLogbackに送信しているためです。重複)。 –