この記事では、JavaのAzure SDKを使用するアプリケーションに Log4j を構成する方法について説明します。 「JavaのAzure SDKでログ記録を構成する」で説明したように、すべてのAzureクライアント ライブラリは SLF4J を介してログを記録するため、Log4j 2 などのフレームワークを使用してトラブルシューティングを簡略化できます。
この記事では Log4J 2.x リリースを使用するためのガイダンスを提供しますが、JavaのAzure SDKでは Log4J 1.x もサポートされています。 log4j ログを有効にするには、次の 2 つの手順を実行します。
- 依存関係として log4j ライブラリを含めます。
- /src/main/resources プロジェクト ディレクトリの下に構成ファイル (log4j2.properties または log4j2.xml) を作成します。
log4j の構成の詳細については、「 Log4j 2 へようこそ」を参照してください。
Maven 依存関係を追加する
Maven 依存関係を追加するには、プロジェクトの pom.xml ファイルに次の XML を含めます。
2.16.0 のバージョン番号を、Apache Log4j SLF4J バインド ページに表示されている最新のリリースバージョン番号に置き換えます。
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.16.0</version>
</dependency>
手記
既知の脆弱性 CVE-2021-44228 が原因で、Log4j バージョン 2.16 以降を使用してください。
Log4j の構成
Log4j は、外部プロパティ ファイルまたは外部 XML ファイルの 2 つの一般的な方法で構成できます。 次のセクションでは、これらの方法について説明します。
プロパティ ファイルを使用する
log4j2.properties という名前のフラット プロパティ ファイルをプロジェクトの /src/main/resources ディレクトリに配置します。 このファイルの形式は次のとおりです。
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d %5p [%t] %c{3} - %m%n
logger.app.name = com.azure.core
logger.app.level = ERROR
rootLogger.level = info
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
XML ファイルを使用する
log4j2.xml という名前の XML ファイルをプロジェクトの /src/main/resources ディレクトリに配置します。 ファイルは次の構造に従う必要があります。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d %5p [%t] %c{3} - %m%n" />
</Console>
</Appenders>
<Loggers>
<Logger name="com.azure.core" level="error" additivity="true">
<appender-ref ref="console" />
</Logger>
<Root level="info" additivity="false">
<appender-ref ref="console" />
</Root>
</Loggers>
</Configuration>
次の手順
この記事では、Log4j の構成と、Azure SDK for Java でログ記録に使用する方法について説明しました。 Azure SDK for Java はすべての SLF4J ログ 記録フレームワークで動作するため、詳細については、SLF4J ユーザー マニュアル を確認することを検討してください。 Log4j を使用する場合は、Web サイトにも膨大な数の構成ガイダンスがあります。 詳細については、「Log4j 2 へようこそ」を参照してください。
ログ記録をマスターしたら、Spring などのフレームワークに提供Azure統合を検討することを検討してください。