第1章 Quarkus を使用したロギングの設定


アプリケーション開発者は、ロギングを使用して、アプリケーションの実行中に発生するイベントに関するメッセージを表示および記録できます。ログメッセージは、開発およびテスト中にアプリケーションをデバッグしたり、実稼働環境でアプリケーションを監視したりするために使用できる情報を提供します。

前提条件

1.1. JBoss LogManager およびサポートされているロギングフレームワーク

Quarkus は JBoss LogManager ロギングバックエンドを使用して、ログデータを収集および管理します。JBoss Logging を使用して、Quarkus 内部イベントおよびアプリケーション内のイベントに関するデータを収集できます。application.properties ファイルにロギングの動作を設定できます。

JBoss LogManager は、JBoss Logging に加えて、いくつかのサードパーティーのロギング API をサポートします。JBoss LogManager は、サポートされるすべてのロギング API からのログをマージします。

ロギング用にサポートされている API:

Quarkus は、JBoss Logging を使用してすべてのロギング機能を処理します。別のロギング API に依存するライブラリーを使用する場合は、このライブラリーを依存関係から除外し、JBoss Logging を設定してサードパーティー API のロギングアダプターを使用する必要があります。

1.1.1. Apache Log4j ロギングフレームワークの追加

Apache Log4j は、ロギングバックエンドとロギング API を含むロギングフレームワークです。Quarkus は JBoss LogManager バックエンドを使用するため、log4j2-jboss-logmanager ライブラリーをプロジェクトに追加し、ロギング API として Log4j を使用できます。Log4j ライブラリーを追加すると、Log4j ログが JBoss Log Manager にルーティングされます。Log4j の依存関係を含める必要はありません。

手順

  • log4j2-jboss-logmanager ライブラリーを依存関係としてプロジェクトの pom.xml ファイルに追加します。

    pom.xml ファイルの例

        <dependency>
          <groupId>org.jboss.logmanager</groupId>
          <artifactId>log4j2-jboss-logmanager</artifactId>
        </dependency>

    log4j2-jboss-logmanager は Log4J バージョン 2 API のライブラリーです。レガシーの Log4J バージョン 1 API を使用する場合は、代わりに log4j-jboss-logmanager を追加する必要があります。

関連情報

1.1.2. ロギングアダプターの使用

Quarkus は、すべてのロギング要件に関して JBoss Logging ライブラリーに依存します。

Apache Commons Logging、Log4j、SLF4j などの他のロギングライブラリーの依存関係を持つライブラリーを使用する場合は、これらのロギングライブラリーを依存関係から除外し、JBoss Logging が提供するアダプターのいずれかを使用する必要があります。Quarkus エクステンションの依存関係であるライブラリー用のアダプターを追加する必要はありません。

注記

サードパーティーのロギングの実装は、ネイティブの実行可能ファイルに含まれていないため、アプリケーションがコンパイルに失敗し、次のようなエラーメッセージが表示される場合があります。

Caused by java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl

使用するサードパーティーのロギング実装用に JBoss Logging アダプターを設定することで、このエラーを防ぐことができます。

手順

  • 使用しているロギングライブラリーに応じて、アダプターのいずれかを pom.xml ファイルに追加します。

    • Apache Commons Logging:

      pom.xml ファイルの例

      <dependency>
          <groupId>org.jboss.logging</groupId>
          <artifactId>commons-logging-jboss-logging</artifactId>
      </dependency>

    • Log4j:

      pom.xml ファイルの例

      <dependency>
          <groupId>org.jboss.logmanager</groupId>
          <artifactId>log4j-jboss-logmanager</artifactId>
      </dependency>

    • Log4j2:

      pom.xml ファイルの例

      <dependency>
          <groupId>org.jboss.logmanager</groupId>
          <artifactId>log4j2-jboss-logmanager</artifactId>
      </dependency>

    • SLF4j:

      pom.xml ファイルの例

      <dependency>
          <groupId>org.jboss.slf4j</groupId>
          <artifactId>slf4j-jboss-logmanager</artifactId>
      </dependency>

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

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

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

会社概要

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

© 2024 Red Hat, Inc.