ความเข้าใจเกี่ยวกับ Appender ในระบบ Logging และ Network Security
Appender คืออะไร?
Appender** เป็นส่วนประกอบสำคัญของ Logging System ที่รับผิดชอบส่ง Log Messages ไปยังปลายทางหรือ Medium ต่างๆ ตอบคำถาม "จะเก็บ Log ไว้ที่ไหน?"
Java Appender คืออะไร?
Appenders ส่งข้อมูล Log จาก Loggers ไปยัง Output Destinations ใช้ Layout จัดรูปแบบ Log Messages ก่อนส่ง สามารถใช้ Multiple Appenders สำหรับหลายปลายทางได้
Rolling File Appender ใน Log4j2
RollingFileAppender** เขียน Log Messages ลงไฟล์ ตาม Trigger Policy สำหรับ Rollover (Backup) เช่น ตามขนาดไฟล์ (File Size) หรือตามวันที่ (Date)
ความแตกต่าง Log4j vs Log4j2
- Log4j 1.x: ไม่มีการดูแลรักษา (End of Life)
- Log4j 2.x: มี Community รองรับ ฟีเจอร์ใหม่ Bug fixes รวดเร็ว รองรับ Auto-reload configuration
Log4j Appender คืออะไร?
Appender Objects พิมพ์ Log Messages ไปยังปลายทางต่างๆ: Console, Files, NT Event Logs, Swing Components, JMS, Remote UNIX Syslog Daemons ไม่สนใจ Message ที่ Level ต่ำกว่า Threshold
Logback Appender คืออะไร?
Appenders ใน Logback เขียน Logging Events ต้อง Implement ch.qos.logback.core.Appender Interface
การทำงานของ Log4j Appender
ส่ง Log Messages ไปยัง Output Destination เฉพาะ ประเภทที่ใช้บ่อย: ConsoleAppender (System Console), FileAppender (ไฟล์)
Syslog Appender คืออะไร?
ส่ง Log Output ไปยัง Syslog Host ระบุ Host/IPv4/IPv6 + Port (ถ้าไม่ใช่ Default) ในรูปแบบ host:port หรือ [ipv6]:port
Log4j คืออะไร?
Java Logging API ที่ Fast, Reliable, Flexible ใช้ Apache Software License Open Source เป็นหนึ่งใน Logging Packages ยอดนิยม Port ไปหลายภาษา: C, C++, C#, Perl, Python, Ruby, Eiffel
Logger ใน Java คืออะไร?
Object ที่ใช้ Log Messages โดย Component ต่างๆ ชื่อแบบ Hierarchical (dot-separated) เช่น package/class name
Log File ใน Java คืออะไร?
Java Logging API ในตัว สร้าง Log Files ได้ ตั้งค่า Message Types ที่จะเขียน Logger Class ให้ฟังก์ชัน Logging
Rolling File คืออะไร?
จัดการ Log Files ตามช่วงเวลา ระบุไฟล์เก่าที่ไม่ใช้แล้ว สำหรับ Script ลบอัตโนมัติ ปกติ Roll ทุกไม่กี่ชั่วโมง
Default Rollover Strategy Log4j2
FilePattern บน RollingFileAppender รองรับ Date/Time Pattern และ Integer สำหรับ Rollover Strategy
ใช้ Log4j และ Log4j2 ร่วมกันได้ไหม?
Log4j 2 รองรับ Config ของ Log4j 1 แบบ Experimental มีข้อจำกัด Custom Components อาจทำงานไม่ได้
Log4j2 คืออะไร?
Version ใหม่ของ Apache Log4j ปรับปรุงมากกว่า Log4j 1 และ Logback แก้ปัญหา Design Flaws
Log4j2 ใช้ทำอะไร?
แทนที่ Log4j Library เดิม รักษาฟีเจอร์เดิม เพิ่ม Performance Improvements
การ Convert Log4j2 เป็น Log4j
Package หลัก: v1 = org.apache.log4j v2 = org.apache.logging.log4j ต้องเปลี่ยน Import และ Method Calls ทั้งหมด