얼리뉴스 | 얼리맨 http://blog.naver.com/napple/38214697 | |
TestServlet.java import javax.servlet.*; import javax.servlet.http.*; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class TestServlet extends HttpServlet { static Logger logger = Logger.getLogger(TestServlet.class); public void init(ServletConfig config) throws ServletException { super.init(config); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { ... logger.info("Hellow World~"); ... } catch (Exception e) { logger.error("Error at TestServlet", e); } } } //////////////////////////////////// ① 프로그램에서 설정 <%@ page contentType="text/html;charset=MS949" import="org.apache.log4j.*,java.io.* " %> <%! static Logger logger = Logger.getLogger("log4j.jsp"); %> <% String layout = "%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n"; String logfilename = "DailyLog.log"; String datePattern = ".yyyy-MM-dd "; PatternLayout patternlayout = new PatternLayout(layout); DailyRollingFileAppender appender = new DailyRollingFileAppender(patternlayout, logfilename, datePattern); logger.addAppender(appender); logger.setLevel(Level.INFO); logger.fatal("fatal!!"); %> ② property 파일에 설정 log4j.properties를 만들어 /WEB-INF/classes 밑에 놓으세요 log4j.rootLogger=INFO, stdout, rolling log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n log4j.appender.rolling=org.apache.log4j.DailyRollingFileAppender log4j.appender.rolling.File=output.log log4j.appender.rolling.Append=true log4j.appender.rolling.DatePattern='.'yyyy-MM-dd log4j.appender.rolling.layout=org.apache.log4j.PatternLayout log4j.appender.rolling.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n ///////////////////////////////// [Struts] 무지막지한 Digester의 로그 메시지 막기.. 스트럿츠에 Log4J로 로깅을 하고, Log 레벨을 DEBUG로 지정하면 해당 웹 컨텍스트를 포함하고 있는 톰캣 혹은 WAS를 실행할 때마다 엄청난 Digester(스트럿츠가 사용하는 XML 설정 파일 파싱 라이브러리)의 로그에 질려버리게 된다. 그럴때는 스트럿츠 웹 컨텍스트의 log4.properties에 다음을 살짝 추가해준다. # Remove org.apache.* logs log4j.logger.org.apache=WARN 물론 로그 레벨은 원하는 대로 바꿔도 된다. 위와 같이 할 경우 저 로그 레벨은 모든 org.apache 패키지 이하의 클래스들의 로깅에 다 적용된다. 특정 아파치 프로젝트의 로깅만 막고 싶다면 그 프로젝트의 패키지명을 지정하면 된다. 예를들면 스트럿츠의 로깅을 막고 싶으면 "log4j.logger.org.apache.struts=WARN" 하는 식으로 바꾼다. ///////////////////////////////////// // 로거 임포트하기 import org.apache.log4j.Logger; public class ClassName { /** Log4J 로거 얻기 */ private Logger log = Logger.getLogger(ClassName.class); //혹은 private Logger log = Logger.getLogger(this.class); public void method() { if (log.isDebugEnabled()) { log.debug("디버깅용 메시지"); } log.info("정보를 남기기위한 메시지"); try { //어쩌구 저쩌구 실행... } catch (Exception ex) { //로그에 예외 메시지도 함께 남기기 log.error("예외가 발생했어요~~", ex); } } } ////////////////////////////////// log4j.rootLogger = DEBUG, stdout, dailyfile log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p (%F[%M]:%L) [%d] - %m%n log4j.appender.dailyfile.Threshold = DEBUG log4j.appender.dailyfile = org.apache.log4j.DailyRollingFileAppender log4j.appender.dailyfile.File = logfile.log log4j.appender.dailyfile.layout = org.apache.log4j.PatternLayout log4j.appender.dailyfile.layout.ConversionPattern=%5p (%F[%M]:%L) [%d] - %m%n |
log4j