Java 및 Log4j용 Azure SDK로 로그를 기록하다
이 문서에서는 Java용 Azure SDK를 사용하는 애플리케이션에 Log4j를 사용하여 로깅을 추가하는 방법에 대한 개요를 제공합니다.
이 문서에서는 Log4J 2.x 릴리스를 사용하는 지침을 제공하지만 Log4J 1.x는 Java용 Azure SDK에서 동일하게 지원됩니다. log4j 로깅을 사용하도록 설정하려면 다음 두 가지 작업을 수행해야 합니다.
- 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 파일을 통해서입니다. 이러한 방법은 아래에 설명되어 있습니다.
속성 파일 사용
프로젝트의 /src/main/resources 디렉터리에 log4j2.properties 플랫 속성 파일을 배치할 수 있습니다. 이 파일은 다음 형식을 사용해야 합니다.
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 파일 사용
프로젝트의 /src/main/resources 디렉터리에 log4j2.xml XML 파일을 배치할 수 있습니다. 이 파일은 다음 형식을 사용해야 합니다.
<?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의 구성과 Java용 Azure SDK를 로깅에 사용하도록 만드는 방법을 설명했습니다. Java용 Azure SDK는 모든 SLF4J 로깅 프레임워크에서 작동하므로 자세한 내용은 SLF4J 사용자 수동 검토하는 것이 좋습니다. Log4j를 사용하는 경우 웹 사이트에도 방대한 양의 구성 지침이 있습니다. 자세한 내용은 Log4j 2에 오신 것을 환영합니다! 를 참조하세요.
로깅을 마스터한 후에는 Azure가 Spring 및 MicroProfile같은 프레임워크에 제공하는 통합을 살펴보는 것이 좋습니다.