·Î±×¸¦ Ä¿½ºÅÍ ¸¶ÀÌ¡À» ÇÏ·Á°í ÇÒ¶§ »ç¿ëÇÕ´Ï´Ù.
ÇÊ¿äÇÑ ÆÄÀÏÀº 3°³ÀÌ°í
MyLogger.java
MyLoggerFactory.java
XLevel.java
ÀÌ°í ¼öÁ¤Àº MyLogger.java ¿¡¼¸¸ ¼öÁ¤ÇÏ½Ã¸é µÇ°í
ÀÌ°ÍÀº log4j ´Ù¿î¹ÞÀ¸¸é ±×¼Ó¿¡ ¿¹Á¦°¡ µé¾î ÀÖ½À´Ï´Ù.
³ª¸ÓÁö´Â ¼öÁ¤ÇÒ ÀÏÀÌ ¾ø±â ¶§¹®¿¡ MyLogger.java ¸¸ ¼³¸íÇÏ°Ú½À´Ï´Ù.
import org.apache.log4j.*;
import org.apache.log4j.PropertyConfigurator;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
/**
A simple example showing logger subclassing.
<p>See <b><a href="doc-files/MyLogger.java">source code</a></b>
for more details.
<p>See {@link MyLoggerTest} for a usage example.
*/
public class MyLogger extends Logger {
// »ç¿ëÀÚ Á¤º¸
User userInfo;
// It's usually a good idea to add a dot suffix to the fully
// qualified class name. This makes caller localization to work
// properly even from classes that have almost the same fully
// qualified class name as MyLogger, e.g. MyLoggerTest.
static String FQCN = MyLogger.class.getName() + ".";
// It's enough to instantiate a factory once and for all.
private static MyLoggerFactory myFactory = new MyLoggerFactory();
/**
Just calls the parent constuctor.
*/
public MyLogger(String name) {
super(name);
PropertyConfigurator.configure("/data1/bea/wlserver6.1/log4j/log4j.properties");
ÀÌ·¸°Ô Çϸé log4j.properties ÆÄÀÏÀÇ À§Ä¡µµ º¯°æÇÒ ¼ö ÀÖ´Ù.
}
/**
* ²À ÇÊ¿äÇÑ°÷À» log·Î ¶³¾îÆ®¸°´Ù.
* @param message
*/
public void debug(Object message) {
super.log(FQCN, Level.DEBUG, message, null);
}
public void debug(User userInfo, Object message) {
super.log(FQCN, Level.DEBUG, userInfo.getUser_id() + ":" + message, null);
}
ÀÌ·¸°Ô ¸Þ¼Òµå¸¦ ¸¸µé¾î¼ »ç¿ëÇÏ½Ã¸é ¼Ò½º¿¡ ÀÏÀÏÀÌ ¾ÈÇصµ µÇ´Ï±î ÆíÇϳ׿ä
public void debug(HttpSession session, Object message) {
String user = StringUtils.stripToEmpty( ( (User) session.getAttribute("UserInfo")).getUser_id());
super.log(FQCN, Level.DEBUG, user + ":" + message, null);
}
/**
This method overrides {@link Logger#getLogger} by supplying
its own factory type as a parameter.
*/
public static Logger getLogger(String name) {
return Logger.getLogger(name, myFactory);
}
/**
* ÀÏ¹Ý °ªÀ» °ËÁõÇÒ¶§ ¾´´Ù.
* @param message
*/
public void trace(Object message) {
super.log(FQCN, XLevel.TRACE, message, null);
}
}
[»ç¿ë¹æ¹ý]
<%@ page import="org.apache.log4j.*"%>
<% MyLogger log = (MyLogger) MyLogger.getLogger("loginProcess.jsp"); %>
<%
log.info("¿øÇÏ´Â °ª : "+ ¿øÇÏ´Â °´Ã¼);
log.debug("¿øÇÏ´Â °ª : "+ ¿øÇÏ´Â °´Ã¼);
// info, debug´Â ¼³Á¤°ª¿¡¼ Á¤ÇÒ¼ö Àֱ⶧¹®¿¡ Á¤Ã¥À» Á¤Çؼ ÇÏ½Ã¸é µÉ°Í °°½À´Ï´Ù.
%>
java ÆÄÀÏ¿¡µµ ¹°·Ð »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. À̶§´Â ¼¼¼ÇÀÌ ¾øÀ¸´Ï±î...´Ù¸¥ ¸Þ¼Òµå¸¦
È£ÃâÇÏ°ÚÁ®..ÂÁ..