ฤดูใบไม้ผลิ - การบันทึกด้วย Log4J
นี่คือฟังก์ชัน Log4J ที่ใช้งานง่ายมากในแอปพลิเคชัน Spring ตัวอย่างต่อไปนี้จะนำคุณผ่านขั้นตอนง่ายๆในการอธิบายการรวมอย่างง่ายระหว่าง Log4J และ Spring
เราถือว่าคุณมีอยู่แล้ว log4Jติดตั้งบนเครื่องของคุณ หากคุณยังไม่มีคุณสามารถดาวน์โหลดได้จากhttps://logging.apache.org/และแตกไฟล์ซิปในโฟลเดอร์ใดก็ได้ เราจะใช้เฉพาะlog4j-x.y.z.jar ในโครงการของเรา
ต่อไปให้เรามี Eclipse IDE ที่ใช้งานได้และทำตามขั้นตอนต่อไปนี้เพื่อพัฒนาเว็บแอปพลิเคชันแบบไดนามิกฟอร์มโดยใช้ Spring Web Framework -
ขั้นตอน | คำอธิบาย |
---|---|
1 | สร้างโปรเจ็กต์ด้วยชื่อSpringExampleและสร้างแพ็คเกจcom.tutorialspointภายใต้ไฟล์src โฟลเดอร์ในโครงการที่สร้างขึ้น |
2 | เพิ่มไลบรารี Spring ที่จำเป็นโดยใช้ตัวเลือกเพิ่ม JAR ภายนอกตามที่อธิบายไว้ในบทตัวอย่าง Spring Hello World |
3 | เพิ่ม log4j ห้องสมุดlog4j-xyzjarเช่นกันในโครงการของคุณโดยใช้ใช้เพิ่มภายนอกไห |
4 | สร้างคลาส Java HelloWorldและMainAppภายใต้แพ็คเกจcom.tutorialspoint |
5 | สร้างไฟล์คอนฟิกูเรชัน Beans Beans.xmlภายใต้ไฟล์src โฟลเดอร์ |
6 | สร้างไฟล์คอนฟิกูเรชันlog4J log4j.propertiesภายใต้ไฟล์src โฟลเดอร์ |
7 | ขั้นตอนสุดท้ายคือการสร้างเนื้อหาของไฟล์ Java และไฟล์ Bean Configuration และเรียกใช้แอปพลิเคชันตามที่อธิบายด้านล่าง |
นี่คือเนื้อหาของ HelloWorld.java ไฟล์
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);
}
}
ต่อไปนี้เป็นเนื้อหาของไฟล์ที่สอง 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");
}
}
คุณสามารถสร้าง debug และ errorข้อความในลักษณะเดียวกันกับที่เราสร้างข้อความข้อมูล ตอนนี้ให้เราดูเนื้อหาของBeans.xml ไฟล์
<?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>
ต่อไปนี้เป็นเนื้อหาของ log4j.properties ซึ่งกำหนดกฎมาตรฐานที่จำเป็นสำหรับ Log4J ในการสร้างข้อความบันทึก
# 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
เมื่อคุณสร้างไฟล์การกำหนดค่าซอร์สและบีนเสร็จแล้วให้เราเรียกใช้แอปพลิเคชัน หากทุกอย่างเรียบร้อยกับแอปพลิเคชันของคุณสิ่งนี้จะพิมพ์ข้อความต่อไปนี้ในคอนโซล Eclipse -
Your Message : Hello World!
หากคุณตรวจสอบไดรฟ์ C: \\ ของคุณคุณจะพบไฟล์บันทึกของคุณ log.out ด้วยข้อความบันทึกต่างๆเช่นบางสิ่งดังต่อไปนี้ -
<!-- initialization log messages -->
Going to create HelloWord Obj
Returning cached instance of singleton bean 'helloWorld'
Exiting the program
Jakarta Commons Logging (JCL) API
หรือคุณสามารถใช้ Jakarta Commons Logging (JCL)API เพื่อสร้างบันทึกในแอปพลิเคชัน Spring ของคุณ สามารถดาวน์โหลด JCL ได้จากไฟล์https://jakarta.apache.org/commons/logging/. ไฟล์เดียวที่เราต้องการในทางเทคนิคจากแพ็คเกจนี้คือไฟล์commons-logging-xyzjarซึ่งต้องวางไว้ใน classpath ของคุณในลักษณะเดียวกับที่คุณใส่log4j-xyzjarในตัวอย่างข้างต้น
ในการใช้ฟังก์ชันการบันทึกคุณต้องมีอ็อบเจ็กต์org.apache.commons.logging.Logจากนั้นคุณสามารถเรียกใช้วิธีใดวิธีหนึ่งต่อไปนี้ตามข้อกำหนดของคุณ -
- ถึงแก่ชีวิต (ข้อความวัตถุ)
- ข้อผิดพลาด (ข้อความวัตถุ)
- เตือน (ข้อความวัตถุ)
- ข้อมูล (ข้อความวัตถุ)
- debug (ข้อความวัตถุ)
- ติดตาม (ข้อความวัตถุ)
ต่อไปนี้คือการแทนที่ MainApp.java ซึ่งใช้ JCL API
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");
}
}
คุณต้องแน่ใจว่าคุณได้รวมไฟล์ commons-logging-xyzjar ไว้ในโปรเจ็กต์ของคุณก่อนที่จะคอมไพล์และรันโปรแกรม
ตอนนี้ทำให้ส่วนกำหนดค่าและเนื้อหาที่เหลือไม่เปลี่ยนแปลงในตัวอย่างข้างต้นหากคุณรวบรวมและเรียกใช้แอปพลิเคชันของคุณคุณจะได้ผลลัพธ์ที่คล้ายกันกับสิ่งที่คุณได้รับจาก Log4J API