この記事では、Azure SDK for Java を使用するアプリケーションに java.util.logging
を使用してログを追加する方法の概要について説明します。
java.util.logging
フレームワークは JDK の一部です。
「Azure SDK for Java でのログ記録の構成」で説明したように、すべての Azure クライアント ライブラリは Simple Logging Facade for Java (SLF4J) を使用してログを記録するため、java.util.logging
などのログ記録フレームワークを使用できます。
java.util.logging
を有効にするには、次の 2 つの操作を行う必要があります。
-
java.util.logging
用の SLF4J アダプターを依存関係として含めます。 - /src/main/resources プロジェクト ディレクトリの下に、logging.properties という名前のファイルを作成します。
ロガーの構成に関する詳細については、Oracle ドキュメントの「ログ出力 の構成」を参照してください。
Maven 依存関係を追加する
Maven 依存関係を追加するには、プロジェクトの pom.xml ファイルに次の XML を含めます。
1.7.30
のバージョン番号を、SLF4J JDK14 バインディング ページに表示されている最新のリリース バージョン番号に置き換えます。
<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.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
このコードでは、ホーム ディレクトリ () に %h
という名前のファイルが作成されます。 このロガーは、一定期間後の自動ファイル ローテーションをサポートしていません。 この機能が必要な場合は、ログ ファイルのローテーションを管理するためのスケジューラを記述する必要があります。
次の手順
この記事では、java.util.logging
の構成と、Azure SDK for Java でログ記録に使用する方法について説明しました。 Azure SDK for Java はすべての SLF4J ログ 記録フレームワークで動作するため、詳細については、SLF4J ユーザー マニュアル を確認することを検討してください。
ログ記録を習得したら、 Azure が Spring などのフレームワークに提供する統合を調べることを検討してください。