Share via


Azure SDK for Java と Log4j によるログ

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

この記事では Log4J 2.x リリースを使用する場合について説明しますが、Azure SDK for Java では Log4J 1.x が同じようにサポートされています。 Log4j のログを有効にするには、次の 2 つのことを行う必要があります。

  1. log4j ライブラリを依存関係として含める。
  2. 構成ファイル (log4j2.properties または log4j2.xml) を /src/main/resources プロジェクト ディレクトリの下に作成する。

log4j の構成に関する詳細については、「Log4j 2 へようこそ」を参照してください。

Maven の依存関係を追加する

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

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.16.0</version>
</dependency>

Note

既知の脆弱性 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 へようこそ」をご覧ください。

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