2017-07-13 32 views
0

私はRESTful Webサービスを作成しています。私が使用している技術:Glassfish 4、JDK 8 &ジャージー(ガラスの一部)。glassfishのジャージトレースログを有効にする方法

問題をトラブルシューティングするには、ジャージクラスでトレースログを有効にする必要があります。例えば、以下MessageBodyFactory

final TracingLogger tracingLogger = TracingLogger.getInstance(propertiesDelegate); 
    MessageBodyWriter<T> selected = null; 
    final Iterator<MbwModel> iterator = writers.iterator(); 
    while (iterator.hasNext()) { 
     final MbwModel model = iterator.next(); 
     if (model.isWriteable(c, t, as, mediaType)) { 
      selected = (MessageBodyWriter<T>) model.provider; 
      tracingLogger.log(MsgTraceEvent.MBW_SELECTED, selected); 
      break; 
     } 
     tracingLogger.log(MsgTraceEvent.MBW_NOT_WRITEABLE, model.provider); 
    } 

    if (tracingLogger.isLogEnabled(MsgTraceEvent.MBW_SKIPPED)) { 
     while (iterator.hasNext()) { 
      final MbwModel model = iterator.next(); 
      tracingLogger.log(MsgTraceEvent.MBW_SKIPPED, model.provider); 
     } 
    } 

どのように私は、logging.propertiesファイルでこのログを有効にするかの_getMessageBodyWriter()メソッドでは、ロギング・コードはありますか?ここで

+0

管理コンソールで見て、すべてのGlassFishのコンポーネントのロギングサービスを管理し、設定するためのセクションがあります。また、ドキュメントを見てください:[ロギングについて](https://docs.oracle.com/cd/E18930_01/html/821-2416/abluk.html#scrolltoc) – perissf

+0

ロガー設定リンクを参照しているとしますインスタンスの構成しかし、ジャージーについてはこれがログに記録されますか? [ログレベル]タブにロガーを追加するオプションがあります。上記のログメッセージをserver.logに表示するには、どのロガーを追加する必要がありますか? –

答えて

1

は一例です:

あなた logging.propertiesに次のように設定し
@ApplicationPath("rest") 
public class ApplicationConfig extends ResourceConfig { 

    public ApplicationConfig() { 
     super(); 
     register(LoggingFilter.class); 
     // register your rest classes here 
     property("jersey.config.server.tracing.type", "ALL"); 
     property("jersey.config.server.tracing.threshold", "VERBOSE"); 
    } 
} 

org.glassfish.jersey.tracing.level=ALL 

これはHTTPヘッダとserver.log経由ジャージートレースログを有効になり、あなたはFirebugのようなものを使用したりすることができますChromeデベロッパーコンソールでヘッダーを表示します。

jersey.config.server.tracing.typeALLに設定すると、すべての要求に対してトレースログが有効になります。 ON_DEMANDに設定することもできます。次に、ログのリクエストにX-Jersey-Tracing-Acceptという名前のヘッダー(値は関係ありません)を追加する必要があります。また

set configs.config.server-config.network-config.protocols.protocol.http-listener-1.http.max-response-headers=1000 

を参照してください:

+0

私はステップを踏んで、デバッグ用の埋め込みGlassfishアプリのログインを有効にしようとしましたが、トレースログは表示されません。 logging.propertiesファイル(https://pastebin.com/2ECzuUxJ)をご覧ください。私はApplicationConfigにデバッグポイントを置こうとしましたが、コンストラクタが呼び出されていないようです。何が間違っていますか? –

+0

logging.propertiesファイルが正常に表示されます。 HTTPヘッダーのトレースログが見えますか?前にApplicationConfigを使用しましたか、それとも私の答えに基づいて追加しましたか? – unwichtich

+0

"jersey.config.server.tracing.type"にALLを設定しているので、HTTPヘッダーを追加しませんでした。 ApplicationConfigについて、私はあなたの答えに基づいてログを有効にするために追加しました。他の機能的な必要性はありません。 –

関連する問題