2014년 10월 29일 수요일

JEUS 로깅 체계

출처 : http://blog.theple.com/rdk75/folder/2.html?uid=29

▣ 제목

JEUS 로깅 체계

▣ 내용

JEUS의 로그는 standard output으로 출력되거나 file로 기록됩니다.

JEUS에서 로그를 남기는 주체인 로거(Logger)들은 상-하 관계를 가집니다.

만일 자신의 출력방식(target)이 file이면 자신의 file에만 기록하고

stdout(standard output)이면 상위의 로거에 자신의 로그를 위임합니다.

Jeus Manager(jeus) 프로세스를 제외하고는 콘솔(console)을 점유하지 않으므로

stdout으로 target이 설정된 경우에는 상위 로거에 자신의 로그가 출력됩니다.

즉, stdout으로 설정하면 상위 로거의 출력방식(target)을 따라 상위 로거에 자신의 로그가 출력됩니다.

* 공통사항

- 출력방법 : stdout(or console) / file / stdout:file(stdout과 file 출력을 동시에)

- buffer size : 로깅은 I/O를 일으키므로 로깅 효율성(시스템 부하)을 위해 buffer를 사용하고

버퍼가 가득 찼을 때에만 I/O를 수행한다. 설정단위는 byte 이며 보통 1024 / 4096 / 8192

사용하고 대부분 8192 이상의 설정을 하여도 성능 차이는 미미하다.

- 일자별로 출력되는 경우 파일명은 <로그명>_월일년.log 로 생성된다.

- JEUS 3.x와 4.x의 로그 레벨 설정이 다르므로 주의한다(반드시 메뉴얼 참조)

- 운영중이고 문제가 거의 발생하지 않는 사이트인 경우에는 성능의 향상을 위해서

target은 file로, buffer size를 설정(4k or 8k), 로그 레벨을 중/상 정도로 설정하도록 한다.

1. JeusServer Log

- 출력방법 : stdout / file / stdout:file(stdout과 file 출력을 동시에)

- 생성위치 : $JEUS_HOME/logs/JeusServer/JeusServer_날짜.log

- 생성형태 : 일자별

- webadmin(웹으로 접근)을 사용하도록 설정된 JEUS인 경우 JeusServer Log는 <로그명>_월일년_0.log로

- 기록내용 : Jeus Manager에서 남기는 로그, thread dump 등.

- 지정 : JeusMain.xml의 Node -> Logging에서 설정

JEUSMain.xml의 jeus-system -> node -> system-log 에서 설정

2. Container Log

- 출력방법 : stdout / file

- 생성위치 : $JEUS_HOME/logs/JeusServer/<ContainerName>/ContainerName_날짜.log

- 생성형태 : 일자별

- 기록내용 : Container에서 남기는 로그

- 지정 : JeusMain.xml의 Node -> EngineContainer -> Logging에서 설정

JEUSMain.xml의 jeus-system -> node -> engine-container -> system-log 에서 설정

3. Servlet Engine Log

- Servlet Engine은 ContextGroup에서 남기는 로그(error log, access log, user log, context user log)와

stdout, stderr를 하위 항목으로 가진다.

4. StdOut Log

- 출력방법 : 기본적으로는 Container Log에 포함되나 redirection을 true로 지정할 경우 file로 기록된다.

- 생성위치 : $JEUS_HOME/logs/<ServletEngineName>/stdout_날짜.log

- 생성형태 : 일자별

- 기록내용 : AP에서 System.out.println() 메소드를 사용하여 남기는 로그

- 지정 : Container.xml의 Container -> RedirectStdOut 에서 설정

WEBMain.xml의 web-container -> redirect-stdout 에서 설정

5. StdErr Log

- 출력방법 : 기본적으로는 Container Log에 포함되나 redirection을 true로 지정할 경우 file로 기록된다.

- 생성위치 : $JEUS_HOME/logs/<ServletEngineName>/stderr_날짜.log

- 생성형태 : 일자별

- 기록내용 : AP에서 System.err.println() 메소드를 사용하여 남기는 로그

- 지정 : Container.xml(WEBMain.xml)의 Container -> RedirectStdErr 에서 설정

WEBMain.xml의 web-container -> redirect-stderr 에서 설정

6. Context Group

- Context Group은 error log, access log, user log, context user log를 하위 항목으로 가진다.

7. Access Log

- 출력방법 : stdout / file

- 생성위치 : $JEUS_HOME/logs/<ServletEngineName>/<ContextGroupName>/accesslog/access_날짜

$JEUS_HOME/logs/<ServletEngineName>/<ContextGroupName>/access..log

- 생성형태 : 일자별 or 단일파일

(valid days 설정을 하지 않거나 -1로 지정한 경우 단일파일에 쌓이게 되므로 반드시 valid da

- 기록내용 : ContextGroup에서 호출된 AP의 access 로그(호출시간, IP, Method, URL, 응답시간 등)

- 지정 : Container.xml의 Container -> ContextGroup -> AccessLogXXX 에서 설정

WEBMain.xml의 web-container -> context-group -> logging -> access-log 에서 설정

8. Error Log

- 출력방법 : stdout / file

- 생성위치 : $JEUS_HOME/logs/<ServletEngineName>/<ContextGroupName>/errorlog/

$JEUS_HOME/logs/<ServletEngineName>/<ContextGroupName>/error.log

- 생성형태 : 일자별 or 단일파일

(valid days 설정을 하지 않거나 -1로 지정한 경우 단일파일에 쌓이게 되므로 반드시 valid da

- 기록내용 : ContextGroup에서 호출된 AP의 수행과 관계되는 오류, servlet engine의 로그

- 지정 : Container.xml의 Container -> ContextGroup -> ErrorLogXXX 에서 설정

WEBMain.xml의 web-container -> context-group -> logging -> error-log 에서 설정

9. User Log

- 출력방법 : stdout / file

- 생성위치 : $JEUS_HOME/logs/<ServletEngineName>/<ContextGroupName>/userlog/

$JEUS_HOME/logs/<ServletEngineName>/<ContextGroupName>/user.log

- 생성형태 : 일자별 or 단일파일

(valid days 설정을 하지 않거나 -1로 지정한 경우 단일파일에 쌓이게 되므로 반드시 valid da

- 기록내용 : ContextGroup에 속한 worker thread들의 상태를 일정주기(Monitoring interval)로 출력(ti 결과

JSP의 내장 객체인 application.log() / Servlet의 ServletContext.log() 메소드를 AP에서 호출

해당 context에서 별도로 지정하지 않는 경우 ContextGroup의 User Log에 남게된다.

- 지정 : Container.xml의 Container -> ContextGroup -> ErrorLogXXX 에서 설정

WEBMain.xml의 web-container -> context-group -> logging -> user-log 에서 설정

10. Context User Log

- 출력방법 : stdout / file

- 생성위치 : $JEUS_HOME/logs/<ServletEngineName>/<ContextGroupName>/userlog/ContextName_

$JEUS_HOME/logs/<ServletEngineName>/<ContextGroupName>/ContextName.log

- 생성형태 : 일자별 or 단일파일

- 기록내용 : JSP의 내장 객체인 application.log() / Servlet의 ServletContext.log() 메소드를 AP에서 호출

별도로 설정하지 않으면 상위 로거인 User Log 에 남게된다.

- 지정 : Container.xml의 Container -> ContextGroup -> Context -> UserLogXXX 에서 설정

jeus-web-dd_<ContextName>.xml의 jeus-web-dd -> context -> user-log 에서 설정

11. EJB Engine Log

- 출력방법 : stdout / file

- 생성위치 : $JEUS_HOME/logs/<EJBEngineName>/

- 생성형태 : 일자별

- 기록내용 : Container에서 남기는 로그

- 지정 : EJBMain.xml의 EJBEngineConfig -> Logging에서 설정

EJBMain.xml의 ejb-engine -> system-log 에서 설정

▣ 참고사항

기타 , JMS 엔진에서 남기는 로그, JEUS System Engine에서 남기는 로그, WebT에서 남기는 로그, TM(Transaction Manager)에서 남기는 로그 등은 빈도가 낮아 언급하지 않았음.

댓글 없음: