logo

Log4J Günlüğe Kaydetme Seviyeleri

Günlük düzeyleri, günlük dosyanızdaki girişleri kategorilere ayırmak için kullanılır. Ancak çok spesifik bir şekilde, yani aciliyete göre kategorize ediyorlar. Düzey aşağıdaki türdeki bilgileri ayırmanıza olanak tanır:

  • Arama sırasında günlük dosyalarınızı filtreleyebilirsiniz.
  • Günlüğe kaydettiğiniz bilgi miktarını yönetebilirsiniz.

Sistemde verilen bilgilerin miktarı ve türü ile olay günlükleri, yapılandırma dosyasındaki log4j düzeyi ayarlarıyla kontrol edilir. Her günlük mesajının önüne mesajın düzeyi eklenir.

Günlüğe kaydetme düzeyleri bunun bir örneğidir org.Apache.log4j.Level sınıf.

Log4j aşağıdaki günlük kaydı düzeylerine sahiptir:

Günlük Düzeyi Tanım
TÜM Bu düzey, günlük kaydının tüm düzeylerini açar. Tanımladığınız özel günlük kaydı düzeylerini içerir. Bu yapılandırıldığında ve seviyeler hiç dikkate alınmadığında, tüm ekleyiciler günlük olaylarını günlük dosyalarına dökmeye başlayacaktır.
HATA AYIKLAMA Hata ayıklama, geliştirme sırasında uygulamanın hatalarını ayıklamak için çok kullanılır. Bu seviye ayarlandıktan sonra her günlük mesajı günlük dosyalarında görünecektir. Temel olarak geliştiricilere aittir.
BİLGİ INFO günlük düzeyi, rutin uygulama çalışmasıyla ilgili mesajları kaydetmek için kullanılır. Gerçek zamanlı olarak sistem yöneticileri, sistemde o anda neler olup bittiğini ve normal akışta herhangi bir sorun olup olmadığını kontrol etmek için bilgi günlüklerini izler.
UYARMAK WARN log seviyesi bir sorun yaşadığınızı ve olağandışı bir durum tespit ettiğinizi belirtmek için kullanılır. Belki bir hizmeti çağırmayı talep ediyordunuz ve otomatik yeniden denemede bağlanmadan önce hizmet birkaç kez başarısız oldu. Beklenmedik ve alışılmadık bir durum, ancak gerçek bir zarar meydana gelmedi ve sorunun devam edip etmeyeceği veya tekrarlanıp tekrarlanmayacağı bilinmiyor. Birilerinin uyarıları araştırması lazım.
HATA HATA günlük düzeyi, derhal araştırmanız gereken ciddi bir sorunu belirtmek için kullanılır. FATAL kadar ciddi değil ama yine de bir sorun. Bu sadece uygulamanızın gerçekten istenmeyen bir durumla karşılaştığı anlamına gelir. Örneğin, beklenmeyen biçimlendirilmiş giriş, veritabanının kullanılamaması.
ÖLÜMCÜL FATAL günlük düzeyi, HATA gibi, bir sorunu belirtir. Ancak ERROR'dan farklı olarak çok ciddi bir hata olayını belirtir. Normal bir günde varlıklarını pek dikkate almayacaksınız ama ortaya çıktıklarında bu çok kötü bir haberin, hatta ölümün habercisidir.
KAPALI Bu mümkün olan en yüksek derecedir ve günlüğe kaydetmeyi kapatmayı amaçlamaktadır.
İZ Bu, yakın zamanda sürüm 1.2'de tanıtıldı ve düzey günlüklerinde hata ayıklamaya yönelik daha fazla bilgi içeriyor.

Günlük Seviyeleri nasıl ayarlanır?

Log4j.properties'te günlük düzeyini ayarlayın

 log4j.rootLogger=DEBUG, consoleAppender log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout log4j.appender.consoleAppender.layout.ConversionPattern=[%t] %-5p %c %x - %m%n #Log info messages for package 'com.javatpoint.web.controller' log4j.logger.com.javatpoint.web.controller=INFO, consoleAppender 

log4j.xml'de günlük düzeyini ayarlayın

Java'da karakter dizisine dönüştürülecek karakter
 

Günlük Seviyeleri Nasıl Çalışır?

Kayıt seviyelerinin çalışması aslında çok basittir. Çalışma zamanı sırasında, uygulama kodu bir seviyeye sahip olan günlük kaydı istekleri oluşturacaktır. Aynı zamanda, günlük kaydı çerçevesi, eşik görevi gören yapılandırılmış bir günlük düzeyine sahiptir. İstek düzeyi yapılandırılan düzeyde veya daha yüksek düzeydeyse yapılandırılan hedefe kaydedilir. Değilse reddedilir. Bu kadar basit.

Bunu seviyeler için aşağıdaki sıralama düzeni olarak düşünelim:

 ALL <trace < debug info warn error fatal off pre> <p>So if, for instance, the logging framework level is set to WARN, requests with any of the levels WARN, FATAL, and ERROR will be accepted, while the rest will be denied.</p> <img src="//techcodeview.com/img/log4j-tutorial/51/log4j-logging-levels.webp" alt="Log4J Logging Levels"> <p>In the above diagram, the vertical header displays the Level of the LogEvent, while the horizontal header shows the Level associated with the appropriate logging configuration.</p> <p>For the first column, you will see how the log works in each level. For example, for WARN, (FATAL, ERROR, and WARN) will be visible. For OFF, nothing will be visible.</p> <h3>Log4j Level Example</h3> <p> <strong>Configuration File:</strong> </p> <pre> # Define the root logger with appender file log = /usr/home/log4j log4j.rootLogger = WARN, 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 </pre> <p> <strong>Java Program:</strong> </p> <pre> import org.apache.log4j.*; public class LogClass { private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class); public static void main(String[] args) { log.trace(&apos;Trace Message!&apos;); log.debug(&apos;Debug Message!&apos;); log.info(&apos;Info Message!&apos;); log.warn(&apos;Warn Message!&apos;); log.error(&apos;Error Message!&apos;); log.fatal(&apos;Fatal Message!&apos;); } } </pre> <p>Now compile and run the above program and we would get the following output in c:/usr/home/log4j/log.out file:</p> <pre> Warn Message! Error Message! Fatal Message! </pre> <hr></trace>

Java Programı:

 import org.apache.log4j.*; public class LogClass { private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class); public static void main(String[] args) { log.trace(&apos;Trace Message!&apos;); log.debug(&apos;Debug Message!&apos;); log.info(&apos;Info Message!&apos;); log.warn(&apos;Warn Message!&apos;); log.error(&apos;Error Message!&apos;); log.fatal(&apos;Fatal Message!&apos;); } } 

Şimdi yukarıdaki programı derleyip çalıştırdığınızda c:/usr/home/log4j/log.out dosyasında aşağıdaki çıktıyı elde ederiz:

 Warn Message! Error Message! Fatal Message!