Aracılığıyla paylaş


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. Javaiç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 günlük kaydeder, bu nedenle Logbackgibi günlükleme çatılarını 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. proje dizininde /src/main/resourceslogback.xml adlı bir dosya oluşturun.

Logback'i yapılandırmayla ilgili daha fazla bilgi için Logback belgelerindeki Logback yapılandırması bölümüne 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ı'de gösterilen en son yayımlanan 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 kayıt tutma araçlarından biridir. Logback günlüğünü etkinleştirmek için projenizin ./src/main/resources dizininde logback.xml adlı bir dosya oluşturun. Bu dosya, log ihtiyaçlarınıza göre özelleştirmek için log yapılandırmalarını içerir. logback.xmlyapılandırması hakkında daha fazla bilgi için, Logback belgelerinin içindeki Logback yapılandırması kısmına bakın.

Konsol kaydı

Aşağıdaki örnekte gösterildiği gibi konsolda oturum açmak için bir Logback yapılandırması oluşturabilirsiniz. Bu örnek, Bilgi düzeyi veya daha yüksek olan tüm günlük olaylarını, nereden gelirlerse gelsinler, 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 kaydet

Aşağıdaki örnek yapılandırma, önceki yapılandırmaya benzer, ancak tüm com.azure.core paketlenmiş sınıflardan (alt paketler dahil) gelen günlüklerin detay seviyesini düşürür. Bu şekilde, yalnızca HATA düzeyi ve üzerinin günlüğe kaydedildiği com.azure.coredışında BİlGİ düzeyi ve üzeri her şey günlüğe kaydedilir. Örneğin, com.azure.core kodunu çok gürültülü bulursanız bu yaklaşımı kullanabilirsiniz. Bu tür bir yapılandırma iki yoldan da gidebilir. Örneğin, com.azure.core'daki sı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 koşullar için uygun olan çıktıyı denetlemek için com.azure.security.keyvault veya eşdeğerini eşit olarak 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, saat başı devir ile ve gzip formatında arşivleme yaparak bir dosyaya loglamak 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 logging.config özelliğini logback.xml yapılandırma dosyasına işaret eden şekilde yapılandırın:

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, daha fazla ayrıntı için SLF4J kullanıcı kılavuzu 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ı bölümüne bakın.

Günlüğe kaydetme konusunda ustalaştıktan sonra Azure'ın Spring ve MicroProfilegibi çerçevelerde sunduğu tümleştirmeleri incelemeyi düşünün.