Saturday, June 18, 2005

ปัญหา Common Logging + Log4j ใน Web Application

สงสัยมานานแล้ว ว่ามันทะแม่งๆ
วันดีคืนดีก็เจอปัญหาแปลกๆ LogConfigurationException บ้าง
log หายบ้าง
วันนี้เจอ article เรื่อง
Taxonomy of class loader problems encountered when using Jakarta Commons Logging

เนื้อหายาวมาก แถมละเอียด ชี้แจงประเด็นเป็นขั้นเป็นตอน
แต่ผมอ่านไม่ครบหรอกนะ ไว้มีเวลาจะค่อยๆทำตามที่เขาว่าดู

เอาเป็นว่าเขาสรุปทางแก้ไขไว้ดังนี้

เลิกใช้ jakarta common logging
ในกรณีที่ต้องการ abstract logging (พวกที่ switch ได้ว่า
จะใช้ log4j หรือ jdk1.4 log หรืออื่นๆ..ได้)
ให้เปลี่ยนไปใช้ UGLI แทน
แต่ถ้าไม่สน ก็ใช้ log4j ไปตรงๆเลย

สำหรับ tomcat 5.0.27 or later
  • เปลี่ยนไปใช้ jakarta commons logging ที่ version >= 1.0.4
  • อย่าไปยุ่งกับ file TOMCAT_HOME/bin/commons-logging-api.jar
  • ให้นำ file commons-logging.jar กับ log4j
    ไปวางไว้ที่ TOMCAT_HOME/commons/lib
  • อย่า include log4j, commons-logging.jar ใน WEB-INF/lib
  • ห้าม set system properties พวกนี้
    org.apaceh.commons.logging.LogFactory
    org.apache.commons.logging.Log


Note: พวกที่ใช้ Resin 2.0.x, Jetty ตามอ่านเอกสารเอาเองนะ
เพราะผมไม่ได้ใช้ เลยไม่ได้ลอกมาให้ดู

อ้างอิง
สำหรับคนที่ชอยอ่านประเด็นมากกว่านี้
ให้ดูที่ Link นี้

Related link from Roti

No comments: