관련글
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 |
'Servlet&Jsp' 카테고리의 다른 글
[서블릿/JSP] JSP 기본객체 종류 (0) | 2018.07.07 |
---|---|
[서블릿/JSP] JSP application 기본 객체로 웹 어플리케이션 파일 자원 가져오기 (0) | 2018.07.06 |
[서블릿/JSP] JSP application 기본 객체 서버 정보 가져오기 (0) | 2018.07.06 |
[서블릿/JSP] JSP application 기본 객체란? web.xml 초기 설정 값 가져오기 (0) | 2018.07.06 |
[서블릿/JSP] JSP pageContext 객체 (0) | 2018.07.05 |