次の方法で共有


Azure SDK for Java と Log4j を使用してログを記録する

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

この記事では Log4J 2.x リリースを使用するためのガイダンスを提供しますが、Log4J 1.x は Azure SDK for Java でも同様にサポートされています。 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 バインド ページに表示されている最新のリリースバージョン番号に置き換えます。

<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 へようこそ」を参照してください。

ログ記録を習得したら、Azure が提供する統合を、Spring や MicroProfileなどのフレームワークに検討することを検討してください。