İlkbahar - Log4J ile Loglama
Bu, Spring uygulamaları içinde kullanımı çok kolay bir Log4J işlevidir. Aşağıdaki örnek, Log4J ve Spring arasındaki basit entegrasyonu açıklamak için sizi basit adımlardan geçirecektir.
Zaten sahip olduğunuzu varsayıyoruz log4Jmakinenize kurulur. Eğer sahip değilseniz, buradan indirebilirsiniz.https://logging.apache.org/ve sıkıştırılmış dosyayı herhangi bir klasöre çıkartın. Sadece kullanacağızlog4j-x.y.z.jar projemizde.
Ardından, çalışan bir Eclipse IDE'ye sahip olalım ve Spring Web Framework kullanarak Dinamik Form tabanlı bir Web Uygulaması geliştirmek için aşağıdaki adımları atalım -
Adımlar | Açıklama |
---|---|
1 | SpringExample adıyla bir proje oluşturun ve altında bir com.tutorialspoint paketi oluşturun .src oluşturulan projedeki klasör. |
2 | Bahar Merhaba Dünya Örneği bölümünde açıklandığı gibi Harici JAR Ekle seçeneğini kullanarak gerekli Bahar kitaplıklarını ekleyin . |
3 | Harici JAR Ekle kullanarak log4j kitaplığı log4j-xyzjar'ı projenize ekleyin . |
4 | Com.tutorialspoint paketi altında HelloWorld ve MainApp Java sınıfları oluşturun . |
5 | Beans yapılandırma dosyasını Beans.xml altında oluşturun.src Klasör. |
6 | LOG4J yapılandırma dosyası oluşturma log4j.properties altındasrc Klasör. |
7 | Son adım, tüm Java dosyalarının ve Bean Yapılandırma dosyasının içeriğini oluşturmak ve aşağıda açıklandığı gibi uygulamayı çalıştırmaktır. |
İşte içeriği HelloWorld.java dosya
package com.tutorialspoint;
public class HelloWorld {
private String message;
public void setMessage(String message){
this.message = message;
}
public void getMessage() {
System.out.println("Your Message : " + message);
}
}
İkinci dosyanın içeriği aşağıdadır MainApp.java
package com.tutorialspoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.apache.log4j.Logger;
public class MainApp {
static Logger log = Logger.getLogger(MainApp.class.getName());
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
log.info("Going to create HelloWord Obj");
HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
obj.getMessage();
log.info("Exiting the program");
}
}
Üretebilirsin debug ve errorbilgi mesajları oluşturduğumuza benzer şekilde mesaj. Şimdi içeriğini görelimBeans.xml dosya
<?xml version = "1.0" encoding = "UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id = "helloWorld" class = "com.tutorialspoint.HelloWorld">
<property name = "message" value = "Hello World!"/>
</bean>
</beans>
Aşağıdakilerin içeriği log4j.properties Log4J'nin günlük mesajları oluşturması için gereken standart kuralları tanımlayan
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
# Set the name of the file
log4j.appender.FILE.File=C:\\log.out
# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true
# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug
# Set the append to false, overwrite
log4j.appender.FILE.Append=false
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
Kaynak ve bean yapılandırma dosyalarını oluşturduktan sonra uygulamayı çalıştırmamıza izin verin. Uygulamanızda her şey yolundaysa, bu, Eclipse konsolunda aşağıdaki mesajı yazdıracaktır -
Your Message : Hello World!
C: \\ sürücünüzü kontrol ederseniz, günlük dosyanızı bulmalısınız log.out aşağıdaki gibi çeşitli günlük mesajlarıyla -
<!-- initialization log messages -->
Going to create HelloWord Obj
Returning cached instance of singleton bean 'helloWorld'
Exiting the program
Jakarta Commons Logging (JCL) API'si
Alternatif olarak kullanabilirsiniz Jakarta Commons Logging (JCL)Spring uygulamanızda bir günlük oluşturmak için API. JCL şu adresten indirilebilir:https://jakarta.apache.org/commons/logging/. Bu pakette teknik olarak ihtiyacımız olan tek dosya , yukarıdaki örnekte log4j-xyzjar'ı koyduğunuza benzer bir şekilde sınıf yolunuza yerleştirilmesi gereken commons-logging-xyzjar dosyasıdır .
Günlük işlevini kullanmak için bir org.apache.commons.logging.Log nesnesine ihtiyacınız vardır ve ardından ihtiyacınıza göre aşağıdaki yöntemlerden birini çağırabilirsiniz -
- ölümcül (Nesne mesajı)
- hata (Nesne mesajı)
- warn (Nesne mesajı)
- bilgi (Nesne mesajı)
- hata ayıklama (Nesne mesajı)
- izleme (Nesne mesajı)
Aşağıda, JCL API'sini kullanan MainApp.java'nın yerini almaktadır.
package com.tutorialspoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.apache.commons.logging. Log;
import org.apache.commons.logging. LogFactory;
public class MainApp {
static Log log = LogFactory.getLog(MainApp.class.getName());
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
log.info("Going to create HelloWord Obj");
HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
obj.getMessage();
log.info("Exiting the program");
}
}
Programı derleyip çalıştırmadan önce projenize commons-logging-xyzjar dosyasını eklediğinizden emin olmalısınız.
Şimdi yukarıdaki örnekte yapılandırmanın ve içeriğin geri kalanını değiştirmeden tutarak, uygulamanızı derler ve çalıştırırsanız, Log4J API kullanarak elde ettiğiniz sonuca benzer bir sonuç alırsınız.