다음을 통해 공유


Java용 Azure SDK 및 Logback을 사용하여 로그

이 문서에서는 Java용 Azure SDK를 사용하는 애플리케이션에 Logback을 사용하여 로깅을 추가하는 방법에 대한 개요를 제공합니다. Java용 Azure SDK의 로깅 구성에서 멘션 모든 Azure 클라이언트 라이브러리는 SLF4J를 통해 기록되므로 Logback과 같은 로깅 프레임워크를 사용할 수 있습니다.

Logback 로깅을 사용하도록 설정하려면 다음 두 가지를 수행해야 합니다.

  1. Logback 라이브러리를 종속성으로 포함
  2. /src/기본/resources 프로젝트 디렉터리에 logback.xml 이라는 파일을 만듭니다.

Logback 구성과 관련된 자세한 내용은 Logback 설명서의 Logback 구성을 참조하세요.

Maven 종속성 추가

Maven 종속성을 추가하려면 프로젝트의 pom.xml 파일에 다음 XML을 포함합니다. 1.2.3 버전 번호를 Logback 클래식 모듈 페이지에 표시된 최신 릴리스 버전 번호로 바꿉다.

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>

프로젝트에 logback.xml 추가

Logback은 주요 로깅 프레임워크 중 하나입니다. Logback 로깅을 사용하도록 설정하려면 프로젝트의 ./src/기본/resources 디렉터리에 logback.xml 이라는 파일을 만듭니다. 이 파일에는 로깅 요구 사항을 사용자 지정하는 로깅 구성이 포함되어 있습니다. logback.xml 구성에 대한 자세한 내용은 Logback 설명서의 Logback 구성을 참조하세요.

콘솔 로깅

다음 예제와 같이 콘솔에 로그온하는 Logback 구성을 만들 수 있습니다. 이 예는 INFO 수준 이상의 모든 로깅 이벤트가 발생하는 위치에 관계없이 기록하도록 구성되었습니다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>
        %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %blue(%logger{100}): %msg%n%throwable
      </Pattern>
    </layout>
  </appender>

  <root level="INFO">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

Azure 핵심 오류 기록

다음 예제 구성은 이전 구성과 비슷하지만 하위 패키지를 포함한 모든 com.azure.core 패키지 클래스에서 로깅이 제공되는 수준을 낮춥니다. 이렇게 하면 오류 수준 이상만 기록되는 경우를 제외하고 com.azure.coreINFO 수준 이상의 모든 항목이 기록됩니다. 예를 들어 너무 시끄러운 코드를 com.azure.core 찾으면 이 방법을 사용할 수 있습니다. 이러한 종류의 구성은 두 가지 방법으로도 사용할 수 있습니다. 예를 들어 클래스에서 com.azure.core더 많은 디버그 정보를 얻으려면 이 설정을 DEBUG로 변경할 수 있습니다.

특정 클래스 또는 특정 패키지의 로깅을 세밀하게 제어할 수 있습니다. 여기에 com.azure.core 표시된 것처럼 모든 핵심 클래스의 출력을 제어하지만 실행 중인 애플리케이션의 컨텍스트에서 가장 유익한 상황에 맞게 출력을 동일하게 사용 com.azure.security.keyvault 하거나 이에 상응하는 방식으로 제어할 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%message%n</pattern>
    </encoder>
  </appender>

  <logger name="com.azure.core" level="ERROR" />

  <root level="INFO">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

로그 순환을 사용하는 파일에 로그

이전 예제는 일반적으로 로그의 기본 위치가 아닌 콘솔에 로그합니다. 대신 다음 구성을 사용하여 매시간 롤오버하고 gzip 형식으로 보관하여 파일에 로그온합니다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <property name="LOGS" value="./logs" />
  <appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOGS}/spring-boot-logger.log</file>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
    </encoder>

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!-- rollover hourly and gzip logs -->
      <fileNamePattern>${LOGS}/archived/spring-boot-logger-%d{yyyy-MM-dd-HH}.log.gz</fileNamePattern>
    </rollingPolicy>
  </appender>

  <!-- LOG everything at INFO level -->
  <root level="INFO">
    <appender-ref ref="RollingFile" />
  </root>
</configuration>

Spring 애플리케이션

Spring 프레임워크는 로깅 구성을 비롯한 다양한 구성에 대한 Spring application.properties 파일을 읽어 작동합니다. 하지만 원하는 파일에서 Logback 구성을 읽도록 Spring 애플리케이션을 구성할 수 있습니다. 이렇게 하려면 Spring /src/기본/resources/application.properties 파일에 다음 줄을 추가하여 logback.xml 구성 파일을 가리키도록 속성을 구성 logging.config 합니다.

logging.config=classpath:logback.xml

다음 단계

이 문서에서는 Logback 구성 및 Java용 Azure SDK에서 Logback을 로깅에 사용하도록 설정하는 방법을 알아보았습니다. Java용 Azure SDK는 모든 SLF4J 로깅 프레임워크에서 작동하므로 자세한 내용은 SLF4J 사용자 설명서를 검토하는 것이 좋습니다. Logback을 사용하는 경우 웹 사이트에서 방대한 분량의 구성 지침을 찾을 수 있습니다. 자세한 내용은 Logback 설명서의 Logback 구성을 참조하세요.

로깅을 마스터한 후에는 Azure가 Spring 및 MicroProfile같은 프레임워크에 제공하는 통합을 살펴보는 것이 좋습니다.