4.2. デバッグログ


Eclipse Vert.x は組み込みロギング API を提供します。Eclipse Vert.x のデフォルトのロギング実装は、Java JDK で提供される java.util.logging ライブラリーを使用します。Eclipse Vert.x では、Log4J (Eclipse Vert.x は Log4J v1 および v2 をサポート)、SLF4J などの異なるロギングフレームワークを使用できます。

4.2.1. java.util.logging を使用した Eclipse Vert.x アプリケーションのロギング設定

java.util.logging を使用して Eclipse Vert.x アプリケーションのデバッグロギングを設定するには、以下を実行します。

  • application.properties ファイルに java.util.logging.config.file システムプロパティーを設定します。この変数の値は、java.util.logging 設定ファイル の名前に対応する必要があります。これにより、アプリケーションの起動時に LogManagerjava.util.logging を初期化できるようになります。
  • vertx-default-jul-logging.properties 名を持つ java.util.logging 設定ファイルを Maven プロジェクトのクラスパスに追加します。Eclipse Vert.x はこのファイルを使用して、アプリケーションの起動時に java.util.logging を設定します。

Eclipse Vert.x では、Log4J ライブラリー、Log4J2 ライブラリー、および SLF4J ライブラリーに事前実装を提供する LogDelegateFactory を使用してカスタムのロギングバックエンドを指定できます。デフォルトで Java に含まれる java.util.logging とは異なり、他のバックエンドでは各ライブラリーをアプリケーションの依存関係として指定する必要があります。

4.2.2. Eclipse Vert.x アプリケーションにログ出力を追加

  1. ロギングをアプリケーションに追加するには、io.vertx.core.logging.Logger を作成します。

    Logger logger = LoggerFactory.getLogger(className);
    
    logger.info("something happened");
    logger.error("oops!", exception);
    logger.debug("debug message");
    logger.warn("warning");
    Important

    ロギングバックエンドは異なる形式を使用して、パラメーター化されたメッセージで置き換え可能なトークンを表します。パラメーター化されたロギングメソッドに依存すると、コードを変更せずにロギングバックエンドを切り替えることができません。

4.2.3. アプリケーションのカスタムロギングフレームワークの指定

Eclipse Vert.x で java.util.logging を使用しない場合は、io.vertx.core.logging.Logger を設定し、別のロギングフレームワークを使用するように設定します (例: Log4J または SLF4J)。

  1. vertx.logger-delegate-factory-class-name システムプロパティーの値を LogDelegateFactory インターフェイスを実装するクラスの名前に設定します。Eclipse Vert.x は、以下のライブラリーに事前ビルドされた実装を提供し、以下のように対応する事前定義されたクラス名を提供します。

    Expand
    ライブラリークラス名

    Log4J v1

    io.vertx.core.logging.Log4jLogDelegateFactory

    Log4J v2

    io.vertx.core.logging.Log4j2LogDelegateFactory

    SLF4J

    io.vertx.core.logging.SLF4JLogDelegateFactory

    カスタムライブラリーを使用してロギングを実装する場合は、関連する Log4J jar または SLF4J jar がアプリケーションの依存関係に含まれていることを確認します。

    Important

    Eclipse Vert.x で提供される Log4J v1 委譲は、パラメーター化されたメッセージに対応していません。Log4J v2 および SLF4J の委譲はどちらも {} 構文を使用します。java.util.logging 委譲は、{n} 構文を使用する java.text.MessageFormat に依存します。

4.2.4. Eclipse Vert.x アプリケーション用の Netty ロギングの設定

Netty は、アプリケーション内の非同期ネットワーク通信を管理する VertX によって使用されるライブラリーです。

Netty:

  • プロトコルサーバーやクライアントなど、ネットワークアプリケーションを迅速かつ簡単に開発できます。
  • TCP や UDP ソケットサーバーの開発などのネットワークプログラミングを簡素化し、整備します。
  • ブロックおよび非ブロッキング接続を管理する統合 API を提供します。

Netty は、システムプロパティーを使用して外部ロギング設定に依存しません。代わりに、プロジェクトの Netty クラスに表示されるロギングライブラリーに基づいてロギング設定を実装します。Netty は、以下の順序でライブラリーの使用を試みます。

  1. SLF4J
  2. Log4J
  3. フォールバックオプションとしての java.util.logging

アプリケーションの main メソッドの冒頭に以下のコードを追加すると、io.netty.util.internal.logging.InternalLoggerFactory を直接特定のロガーに直接設定できます。

// Force logging to Log4j
InternalLoggerFactory.setDefaultFactory(Log4JLoggerFactory.INSTANCE);

4.2.5. OpenShift でのデバッグログへのアクセス

アプリケーションを起動し、これと対話して OpenShift のデバッグステートメントを確認します。

前提条件

  • CLI クライアント oc がインストールされ、認証されている。
  • デバッグロギングが有効になっている Maven ベースのアプリケーション。

手順

  1. アプリケーションを OpenShift にデプロイします。

    $ mvn clean oc:deploy -Popenshift
  2. ログを表示します。

    1. アプリケーションと共に Pod の名前を取得します。

      $ oc get pods
    2. ログ出力の監視を開始します。

      $ oc logs -f pod/MY_APP_NAME-2-aaaaa

      ログ出力を確認できるように、ターミナルウィンドウにログ出力が表示されます。

  3. アプリケーションと対話します。

    たとえば、次のコマンドは、/api/greeting メソッドで message 変数をログに記録するようにデバッグログが設定されている REST API レベル 0 アプリケーションの例に基づいています。

    1. アプリケーションのルートを取得します。

      $ oc get routes
    2. アプリケーションの /api/greeting エンドポイントで HTTP 要求を作成します。

      $ curl $APPLICATION_ROUTE/api/greeting?name=Sarah
  4. Pod ログのあるウィンドウに戻り、ログでデバッグロギングメッセージを検査します。

    ...
    Feb 11, 2017 10:23:42 AM io.openshift.MY_APP_NAME
    INFO: Greeting: Hello, Sarah
    ...
  5. デバッグロギングを無効にするには、ロギング設定ファイル (例: src/main/resources/vertx-default-jul-logging.properties) を更新し、クラスのロギング設定を削除し、アプリケーションを再デプロイします。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る