Azure SDK for Java と java.util.logging によるログ

この記事では、java.util.logging を使用したログ記録を、Azure SDK for Java を使用するアプリケーションに追加する方法の概要について説明します。 java.util.logging フレームワークは JDK の一部です。 「Azure SDK for Java でログ記録を構成する」で説明したように、すべての Azure クライアント ライブラリが SLF4J を通じてログ記録するため、java.util.logging などのログ記録フレームワークを使用できます。

java.util.logging を有効にするには、次の 2 つのことを行う必要があります。

  1. java.util.logging 用 SLF4J アダプターを依存関係として含める
  2. logging.properties という名前のファイルを /src/main/resources プロジェクト ディレクトリの下に作成する

ロガーの構成に関する詳細については、Oracle ドキュメントの「ログ記録出力の構成」を参照してください。

Maven の依存関係を追加する

Maven の依存関係を追加するには、プロジェクトの pom.xml ファイルに次の XML を含めます。 バージョン番号 1.7.30 は、SLF4J JDK14 Binding ページに示されている最新リリースのバージョン番号に置き換えてください。

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-jdk14</artifactId>
    <version>1.7.30</version> <!-- replace this version with the latest available version on Maven central -->
</dependency>

プロジェクトへの logging.properties の追加

java.util.logging を使用してログを記録するには、logging.properties という名前のファイルをプロジェクトの ./src/main/resources ディレクトリの下または他の場所に作成します。 このファイルには、ログ記録のニーズをカスタマイズするためのログ記録構成が含まれます。 java.util.logging.config.file システム プロパティを設定して、ファイルへのパスを指定します。 ロガー インスタンスを作成する前に、このプロパティを設定する必要があります。 詳細については、「Java ロギング: 構成」をを参照してください。。

[コンソールのログ記録]

コンソールにログ記録する構成を作成する例を、次に示します。 この例は、INFO レベル以上であるログ イベントをすべてその発生元に関係なくログするように構成されています。

handlers = java.util.logging.ConsoleHandler
.level = INFO

java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format=[%1$tF %1$tH:%1$tM:%1$tS.%1$tL] [%4$s] %3$s %5$s %n

ファイルにログ記録する

前の例でログを記録しているコンソールは、通常はログ記録する場所として好ましくありません。 代わりにファイルへのログ記録を構成するには、次の構成を使用します。

handlers = java.util.logging.FileHandler
.level = INFO

java.util.logging.FileHandler.pattern = %h/myapplication.log
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.level = INFO

このコードにより、myapplication.log という名前のファイルがホーム ディレクトリ (%h) に作成されます。 このロガーでは、一定期間後のファイルの自動ローテーションがサポートされていません。 この機能が必要な場合は、ログ ファイル ローテーションを管理するためのスケジューラを作成する必要があります。

次のステップ

この記事では、java.util.logging の構成と、Azure SDK for Java でこれをログに使用する方法について説明しました。 Azure SDK for Java はすべての SLF4J ログ記録フレームワークで機能するため、「SLF4J ユーザー マニュアル」で詳細を参照してください。

ログ記録について習得した後は、Azure が提供する、SpringMicroProfile などのフレームワークへの統合を検討してください。