Java ve Logback için Azure SDK ile oturum açma

Bu makalede, Java için Azure SDK'sını kullanan uygulamalara Logback kullanarak günlüğe kaydetme ekleme hakkında genel bir bakış sağlanmaktadır. Java için Azure SDK'da günlüğe kaydetmeyi yapılandırma bölümünde belirtildiği gibi, tüm Azure istemci kitaplıkları SLF4J üzerinden oturum açar, böylece Logback gibi günlük çerçevelerini kullanabilirsiniz.

Logback günlüğünü etkinleştirmek için iki şey yapmanız gerekir:

  1. Logback kitaplığını bağımlılık olarak ekleyin,
  2. /src/main/resources proje dizininde logback.xml adlı bir dosya oluşturun.

Logback'i yapılandırmayla ilgili daha fazla bilgi için, Logback belgelerindeki Logback yapılandırmasına bakın.

Maven bağımlılığını ekleme

Maven bağımlılığını eklemek için projenin pom.xml dosyasına aşağıdaki XML'yi ekleyin. 1.2.3 sürüm numarasını Logback Klasik Modülü sayfasında gösterilen en son sürüm numarasıyla değiştirin.

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

Projenize logback.xml ekleme

Logback popüler günlük çerçevelerinden biridir. Logback günlüğünü etkinleştirmek için projenizin ./src/main/resources dizininde logback.xml adlı bir dosya oluşturun. Bu dosya, günlük gereksinimlerinizi özelleştirmek için günlük yapılandırmalarını içerir. logback.xml'yi yapılandırma hakkında daha fazla bilgi için, Logback belgelerindeki Logback yapılandırmasına bakın.

Konsol günlüğü

Aşağıdaki örnekte gösterildiği gibi konsolda oturum açmak için bir Logback yapılandırması oluşturabilirsiniz. Bu örnek, bİlGİ düzeyi veya daha yüksek olan tüm günlük olaylarını geldikleri her yerden günlüğe kaydedecek şekilde yapılandırılmıştır.

<?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 çekirdek hatalarını günlüğe kaydetme

Aşağıdaki örnek yapılandırma önceki yapılandırmaya benzer, ancak günlük kaydının tüm com.azure.core paketlenmiş sınıflardan (alt paketler dahil) geldiği düzeyi düşürür. Bu şekilde, yalnızca HATA düzeyi ve üzerinin günlüğe kaydedildiği , dışında com.azure.coreBİlGİ düzeyi ve üzeri her şey günlüğe kaydedilir. Örneğin, kodu com.azure.core çok gürültülü bulursanız bu yaklaşımı kullanabilirsiniz. Bu tür bir yapılandırma iki yoldan da gidebilir. Örneğin, içindeki com.azure.coresınıflardan daha fazla hata ayıklama bilgisi almak istiyorsanız, bu ayarı DEBUG olarak değiştirebilirsiniz.

Belirli sınıfların veya belirli paketlerin günlüğe kaydedilmesi üzerinde ayrıntılı denetime sahip olmak mümkündür. Burada gösterildiği gibi, com.azure.core tüm çekirdek sınıfların çıkışını denetler, ancak çalışan uygulama bağlamında en bilgilendirici olan koşullara uygun şekilde çıkışı denetlemek için eşit olarak kullanabilir com.azure.security.keyvault veya eşdeğeri kullanabilirsiniz.

<?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>

Günlük döndürme etkinleştirilmiş bir dosyada oturum açma

Önceki örnekler, normalde günlükler için tercih edilen konum olmayan konsolda günlüğe kaydedilir. Bunun yerine bir dosyada saatlik geçiş ve gzip biçiminde arşivleme ile oturum açmak için aşağıdaki yapılandırmayı kullanın:

<?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 uygulamaları

Spring framework, günlük yapılandırması da dahil olmak üzere çeşitli yapılandırmalar için Spring application.properties dosyasını okuyarak çalışır. Ancak Spring uygulamasını herhangi bir dosyadan Logback yapılandırmalarını okuyacak şekilde yapılandırmak mümkündür. Bunu yapmak için, Spring /src/main/resources/application.properties dosyanıza aşağıdaki satırı ekleyerek özelliğini logback.xml yapılandırma dosyasına işaret eden şekilde yapılandırınlogging.config:

logging.config=classpath:logback.xml

Sonraki adımlar

Bu makalede Logback yapılandırması ve Java için Azure SDK'sının günlüğe kaydetme için nasıl kullanılacağı ele alınmıştır. Java için Azure SDK tüm SLF4J günlük çerçeveleriyle çalıştığından , diğer ayrıntılar için SLF4J kullanıcı kılavuzunu gözden geçirmeyi göz önünde bulundurun. Logback'i kullanıyorsanız web sitesinde büyük miktarda yapılandırma kılavuzu da vardır. Daha fazla bilgi için Logback belgelerindeki Logback yapılandırmasına bakın.

Günlüğe kaydetme konusunda ustalaşdıktan sonra Azure'ın Spring ve MicroProfile gibi çerçevelerde sunduğu tümleştirmeleri gözden geçirmeyi göz önünde bulundurun.