관련글



application 기본 객체로 로그 남기기
JSP에서 웹 컨테이너 로그 파일에 로깅(logging) 하는 방법은 기본적으로 두 가지가 있습니다. 첫번째는 JSP 기본 메서드인 log() 메서드를 사용하는 것이며, 두번째로는 application.log() 메서드를 사용하는 것입니다.

그러나 두가지 방식 모두 메서드의 사용법은 동일하며, 같은 로그파일에 기록합니다. 또 각각의 방식마다 단순 로그와 예외 정보를 함께 로깅하는 방법을 제공하고 있습니다.
메서드
반환타입
설명
log(String text)
void
서버 로그 파일에 로그 내용을 기록합니다.
log(String text, Throwable t)
void
서버 로그파일에 로그 내용을 기록하며, 두번째 인자로 넘긴 예외정보와 스택트레이스 정보를 기록합니다. 

try{ } catch(){} 에서 예외처리 하여 잡은 예외를 기록할 때 유용합니다.


다음은 JSP에서 두 가지 방식을 각각 사용하여 일반 로깅과 예외 로깅을 하는 소스입니다. JSP를 컨테이너에 배포하고 페이지를 요청하면 서버의 로그파일에 로그가 기록됩니다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>         
     
<!DOCTYPE html> 
<html> 
<head> 
     <meta charset="UTF-8"> 
</head> 
<body> 
     <% 
           application.log("application 로깅!"); 
           application.log("application 예외 로깅!"new RuntimeException()); 
           
           log("jsp 로깅!"); 
           log("jsp 예외 로깅!"new RuntimeException()); 
     %> 
</body> 
</html> 
cs


로그파일이 저장되는 위치는 log 메서드를 구현하는 서버마다 차이가 있는데, 톰캣의 경우에는 [톰캣 경로]\logs 하위에 localhost.년-월-일.log (yyyy-mm-dd 포맷) 형식으로 그날의 로그 파일을 생성하여 기록합니다.





로그파일을 메모장으로 열면 jsp 페이지에서 출력했던 로그들이 남아있습니다. 둘의 차이점이라고 한다면 로그 메시지가 시작되기 전에 jsp: 가 붙냐 안붙냐에 차이점만 있습니다.
05-Jul-2018 17:53:02.613 정보 [http-apr-8080-exec-7] org.apache.catalina.core.ApplicationContext.log application 로깅!
05-Jul-2018 17:53:02.613 심각 [http-apr-8080-exec-7] org.apache.catalina.core.ApplicationContext.log application 예외 로깅!
java.lang.RuntimeException
    at org.apache.jsp.paramTest_jsp._jspService(paramTest_jsp.java:121)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    ...스택 정보 생략...
 
 
 
 
05-Jul-2018 17:53:02.613 정보 [http-apr-8080-exec-7] org.apache.catalina.core.ApplicationContext.log jsp: jsp 로깅!
05-Jul-2018 17:53:02.613 심각 [http-apr-8080-exec-7] org.apache.catalina.core.ApplicationContext.log jsp: jsp 예외 로깅!
java.lang.RuntimeException
    at org.apache.jsp.paramTest_jsp._jspService(paramTest_jsp.java:124)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    ...스택 정보 생략...
cs

블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

댓글을 달아 주세요! 질문 환영합니다!