Pages

3/10/2009

Setup Log4J for JSP+Servlet in eclipse

กว่าจะทำติด เสียเวลาไปหลายชม. เลยต้องขอจดเอาไว้หน่อย

เริ่มจากโหลด Log4J จากหน้า http://logging.apache.org/log4j/1.2/download.html

เอา .jar ไปใส่ใน WebContent/WEB-INF/lib
(แล้ว eclipse จะจัดการใส่ classpath ให้เอง)

สร้าง log4j.properties ใส่ไว้ใน src/
(แล้ว eclipse จะcopy ใส่ /build/classes ให้เอง)
(ตั้งชื่อไฟล์อย่างอื่นได้ แต่จะใช้กับ servlet ได้อย่างเดียว ใช้กับ jsp ไม่ได้)

เนื้อหา log4j.properties

####################################################################
log4j.rootLogger=no

log4j.logger.com.multiply.dearpcyp.package1=debug, S
log4j.logger.JspLog=debug, J

##### FOR SERVLET #####
log4j.appender.S=org.apache.log4j.RollingFileAppender
log4j.appender.S.File=d:/EclipseWorkspace/Project1/logs/servletlog.log

log4j.appender.S.MaxFileSize=100KB
log4j.appender.S.MaxBackupIndex=1

log4j.appender.S.layout=org.apache.log4j.PatternLayout
log4j.appender.S.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n


##### FOR JSP #####
log4j.appender.J=org.apache.log4j.RollingFileAppender
log4j.appender.J.File=d:/EclipseWorkspace/Project1/logs/webjsplog.log

log4j.appender.J.MaxFileSize=100KB
log4j.appender.J.MaxBackupIndex=1

log4j.appender.J.layout=org.apache.log4j.PatternLayout
log4j.appender.J.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
#####################################################################



ต่อไปเริ่มเขียน Code
- ส่วนของ Servlet
(สมมุติว่าclassชื่อ com.multiply.dearpcyp.package1.ABC)

Logger logger;

public void init() {
PropertyConfigurator.configure(getServletContext().getRealPath("/")+"WEB-INF/classes/log4j.properties");
logger = Logger.getLogger(ABC.class);
}


- ส่วนของ JSP
<%@page import="org.apache.log4j.Logger"%>
<%
Logger logger = Logger.getLogger("JspLog");
%>

จบ ..
มี logger ไว้ใช้งาน