SLF4J - SLF4J

Java için Basit Günlüğe Yazma Cephesi
SLF4J Logo.jpg
Geliştirici (ler)Ceki Gülcü
Kararlı sürüm
1.7.30 / 16 Aralık 2019; 11 ay önce (2019-12-16)[1]
Depo Bunu Vikiveri'de düzenleyin
YazılmışJava
İşletim sistemiÇapraz platform
TürGünlük Aracı
LisansMIT Lisansı
İnternet sitesiwww.slf4j.org

Java için Basit Günlüğe Yazma Cephesi (SLF4J) bir Java Kerestecilik API basit bir şekilde cephe deseni. Temeldeki günlük kaydı arka ucu şu noktada belirlenir: Çalışma süresi istenen bağlamayı ekleyerek sınıf yolu ve standart Sun Java günlük kaydı paketi java.util.logging olabilir,[2] log4j, yeniden giriş yap[3] veya tinylog.[4][5]

İstemci API'sinin günlük arka uçtan ayrılması, bir uygulama ile herhangi bir belirli günlükleme çerçevesi arasındaki bağlantıyı azaltır. Bu, mevcut veya üçüncü taraf kodla entegre etmeyi veya kodu daha önce günlüğe kaydetme arka ucu seçmiş olan diğer projelere teslim etmeyi kolaylaştırabilir.

SLF4J, Ceki Gülcü tarafından Jakarta Commons Logging çerçevesine daha güvenilir bir alternatif olarak oluşturuldu.[6][7] 2013 yılında 10.000 GitHub projesi üzerinde yapılan araştırma, en popüler Java kitaplığının SLF4J olduğunu ve bununla birlikte JUnit, projelerin% 30,7'si bunu kullanıyor.[8]

Log4j 1.x ile benzerlikler ve farklılıklar

  • Log4j'nin altı günlükleme düzeyinden beşi kullanılır (ERROR, WARN, INFO, DEBUG, TRACE). FATAL, bir uygulamanın ne zaman sona erdirilmesi gerektiğine karar verme yeri olmadığı ve bu nedenle, kaydedicinin bakış açısından ERROR ile FATAL arasında hiçbir fark olmadığı temelinde, günlüğe kaydetme çerçevesi içinde bırakılmıştır. Ek olarak, SLF4J işaretleyicileri, günlük ifadelerini etiketlemek için daha genel bir yöntem sunar. Örneğin, ERROR düzeyindeki herhangi bir günlük ifadesi "FATAL" işaretiyle etiketlenebilir.
  • Günlük kaydedici örnekleri, LoggerFactory, log4j'de çok benzer. Örneğin,
     özel statik final Ağaç kesicisi LOG = LoggerFactory.getLogger(Wombat.sınıf);
  • İçinde Ağaç kesicisi, günlüğe kaydetme yöntemleri aşırı yüklenmiş bir, iki veya daha fazla değeri kabul eden formlarla.[9] Basit modelin oluşumları {} günlük mesajında ​​sırasıyla değerlerle değiştirilir. Bunun kullanımı basittir, ancak değerler pahalı olduğunda bir performans avantajı sağlar toString () yöntemler. Günlüğe kaydetme belirli düzeyde devre dışı bırakıldığında, günlüğe kaydetme çerçevesinin değerlerin dize temsilini değerlendirmesi veya gerçekte günlüğe kaydedilmeyen bir günlük mesajı dizesi oluşturması gerekmez. Aşağıdaki örnekte, dize birleştirme ve toString () değerler için yöntem Miktar veya userAccountList yalnızca DEBUG etkinleştirildiğinde gerçekleştirilir.
 LOG.hata ayıklama("Şimdi var " + Miktar + " Kullanıcı hesapları: " + userAccountList); // Yavaş LOG.hata ayıklama("Artık {} kullanıcı hesabı var: {}", Miktar, userAccountList);    // Daha hızlı
  • Benzer yöntemler var Ağaç kesicisi için isDebugEnabled () vb. daha karmaşık günlük çağrılarının, karşılık gelen düzey devre dışı bırakıldığında devre dışı bırakılmaları ve gereksiz işlemlerden kaçınılması için sarılmasına izin vermek için.
  • Aksine log4j SLF4J, işaretçileri kabul eden günlükleme yöntemleri sunar. Bunlar, günlük mesajlarını zenginleştiren özel nesnelerdir. Şu anda, yeniden giriş yap belirteçleri kullanan tek çerçevedir.

Log4j 2.x ile benzerlikler ve farklılıklar

Apache log4j 2.x, tüm slf4j özelliklerini destekler.[10]

Sürüm geçmişi

Versiyon 2

Sürüm 2 şu anda geliştirilmektedir ve bir alfa ön sürümü mevcut. Gerektirir Java 8 veya daha sonra.

Önemli özellik eklemeleri:

Versiyon 1

Sürüm ayrıntıları bulunabilir kılavuzda.

Önemli sürümler şunları içerir:

  • Sürüm 1.7.30, güncel kararlı sürümdür. Görmek İndir ürün sayfası.
  • Sürüm 1.7.5, günlükçü erişim sürelerinde önemli bir gelişme sağladı.
  • Sürüm 1.7.0 için destek eklendi Varargs için destek gerektiren Java 5 veya daha sonra.
  • Sürüm 1.6, bir işlem yok hiçbir bağlama bulunmazsa varsayılan olarak kullanılan uygulama.
  • Maven depolarındaki Sürüm 1.1 sürümleri 2006-09 başladı.

Ayrıca bakınız

Referanslar

  1. ^ "SLF4J Haberleri". slfj4.org. 2019-12-16.
  2. ^ java.util.logging
  3. ^ yeniden giriş yap
  4. ^ Tinylog
  5. ^ Tinylog için SLF4J bağlama
  6. ^ "Ortak günlüğe kaydetme API'sini benimsemeden önce tekrar düşünün"
  7. ^ "Jakarta Commons Logging kullanılırken karşılaşılan sınıf yükleyici sorunlarının sınıflandırılması"
  8. ^ "30.000 GitHub Projesini Analiz Ettik - İşte Java, JS ve Ruby'de En İyi 100 Kitaplık".
  9. ^ SLF4J api belgeleri: Kaydedici
  10. ^ Apache log4j 2.x slf4j Bağlama

Dış bağlantılar