log4j - Yapılandırma

Önceki bölüm log4j'nin temel bileşenlerini açıkladı. Bu bölüm, bir yapılandırma dosyası kullanarak temel bileşenleri nasıl yapılandırabileceğinizi açıklar. Log4j'yi yapılandırmak, Seviye atamayı, Appender'ı tanımlamayı ve bir yapılandırma dosyasında Layout nesnelerini belirtmeyi içerir.

log4j.propertiesdosyası, özellikleri anahtar-değer çiftlerinde tutan bir log4j yapılandırma dosyasıdır. Varsayılan olarak, LogManager adlı bir dosya arar.log4j.properties içinde CLASSPATH.

  • Kök kaydedicinin seviyesi şu şekilde tanımlanır: DEBUG. DEBUG ona X adlı ekleyiciyi ekler.

  • X adlı ekleyiciyi geçerli bir ekleyici olarak ayarlayın.

  • Ekleyici X için düzeni ayarlayın.

log4j.properties Sözdizimi:

Ekleyici X için log4j.properties dosyasının sözdizimi aşağıdadır :

# Define the root logger with appender X
log4j.rootLogger = DEBUG, X

# Set the appender named X to be a File appender
log4j.appender.X=org.apache.log4j.FileAppender

# Define the layout for X appender
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.conversionPattern=%m%n

log4j.properties Örnek

Yukarıdaki sözdizimini kullanarak aşağıdakileri tanımlarız: log4j.properties dosya:

  • Kök kaydedicinin seviyesi şu şekilde tanımlanır: DEBUG, The DEBUG ekli FILE ona.

  • Ekleyen FILE olarak tanımlanır org.apache.log4j.FileAppender. Adlı bir dosyaya yazarlog.out Içinde bulunan log dizin.

  • Tanımlanan düzen kalıbı % m% n , yani yazdırılan günlük mesajının ardından bir satırsonu karakteri gelecektir.

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

Log4j'nin $ {variableName} gibi UNIX tarzı değişken değiştirmeyi desteklediğine dikkat etmek önemlidir.

Hata ayıklama düzeyi

Her iki ek ile de DEBUG kullandık. Olası tüm seçenekler şunlardır:

  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR
  • FATAL
  • ALL

Bu seviyeler, bu öğreticide daha sonra açıklanmıştır.

Ekler

Apache log4j, öncelikle günlük mesajlarını konsollar, dosyalar, soketler, NT olay günlükleri vb. Gibi farklı hedeflere yazdırmaktan sorumlu olan Appender nesneleri sağlar.

Her Appender nesnesinin kendisiyle ilişkili farklı özellikleri vardır ve bu özellikler, o nesnenin davranışını gösterir.

Emlak Açıklama
Yerleşim Appender, günlük bilgilerini biçimlendirmek için Düzen nesnelerini ve bunlarla ilişkili dönüştürme modelini kullanır.
hedef Hedef, ekleyiciye bağlı olarak bir konsol, dosya veya başka bir öğe olabilir.
seviye Seviye, günlük mesajlarının filtrelemesini kontrol etmek için gereklidir.
eşik Ekleyici, kaydedici düzeyinden bağımsız olarak kendisiyle ilişkilendirilmiş bir eşik düzeyine sahip olabilir. Appender, eşik seviyesinden daha düşük bir seviyeye sahip tüm günlük mesajlarını yok sayar.
filtre Filtre nesneleri, günlük bilgilerini seviye eşleştirmesinin ötesinde analiz edebilir ve günlükleme isteklerinin belirli bir Ekleyici tarafından ele alınmasına veya yok sayılmasına karar verebilir.

Aşağıdaki yöntemle yapılandırma dosyasına aşağıdaki ayarı ekleyerek Logger'a bir Appender nesnesi ekleyebiliriz:

log4j.logger.[logger-name]=level, appender1,appender..n

Aynı yapılandırmayı XML biçiminde aşağıdaki gibi yazabilirsiniz:

<logger name="com.apress.logging.log4j" additivity="false">
   <appender-ref ref="appender1"/>
   <appender-ref ref="appender2"/>
</logger>

Programınızın içine Appender nesnesi eklemek istiyorsanız, aşağıdaki yöntemi kullanabilirsiniz:

public void addAppender(Appender appender);

AddAppender () yöntemi, Logger nesnesine bir Appender ekler. Örnek yapılandırmanın gösterdiği gibi, birçok Appender nesnesini virgülle ayrılmış bir listede bir kaydediciye eklemek mümkündür, her bir günlük bilgilerini ayrı hedeflere yazdırır.

Yukarıdaki örneğimizde yalnızca bir ekleyici FileAppender kullandık . Tüm olası ekleyici seçenekleri şunlardır:

  • AppenderSkeleton
  • AsyncAppender
  • ConsoleAppender
  • DailyRollingFileAppender
  • ExternallyRolledFileAppender
  • FileAppender
  • JDBCAppender
  • JMSAppender
  • LF5Appender
  • NTEventLogAppender
  • NullAppender
  • RollingFileAppender
  • SMTPAppender
  • SocketAppender
  • SocketHubAppender
  • SyslogAppender
  • TelnetAppender
  • WriterAppender

FileAppender'ı Logging in Files'da ve JDBC Appender Veritabanında Logging'de ele alacağız .

Yerleşim

Ekleyicimizle PatternLayout'u kullandık. Olası tüm seçenekler şunlardır:

  • DateLayout
  • HTMLLayout
  • PatternLayout
  • SimpleLayout
  • XMLLayout

HTMLLayout ve XMLLayout kullanarak, HTML ve XML biçiminde de günlük oluşturabilirsiniz.

Düzen Biçimlendirme

Günlük mesajını nasıl biçimlendireceğinizi şu bölümde öğreneceksiniz: Günlük Biçimlendirme .