이 장에서는 로깅을 구성하고 서버 로그를 보는 방법에 대해 간단하게 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.
Application Server는 JSR 047에 지정된 Java EE 플랫폼 로깅 API를 사용합니다. 일반적으로 Application Server 로깅 메시지는 domain-dir/logs/server.log에 위치한 서버 로그에 기록됩니다. 로그가 순환될 때 Application Server는 server.log라는 빈 파일을 새로 만들고 이전 파일인 server.log_date(date는 파일이 순환된 날짜와 시간)의 이름을 변경합니다.
domain-dir/logs 디렉토리에는 서버 로그와 두 가지 다른 종류의 로그가 있습니다. access 하위 디렉토리에는 HTTP 서비스 액세스 로그가 있고, tx 하위 디렉토리에는 트랜잭션 서비스 로그가 있습니다. 이러한 로그에 대한 자세한 내용은 트랜잭션 구성을 참조하십시오.
Application Server 구성 요소는 로깅 출력을 생성합니다. 응용 프로그램 구성 요소에서도 로깅 출력을 생성할 수 있습니다.
응용 프로그램 구성 요소에서 Apache Commons Logging Library를 사용하여 메시지를 로그할 수 있습니다. 그러나 더 좋은 로그 구성을 위해서는 플랫폼 표준 JSR 047 API를 권장합니다.
로그 레코드는 다음과 같은 일관된 형식을 따릅니다.
[#|yyyy-mm-ddThh:mm:ss.SSS-Z|Log Level|ProductName-Version|LoggerName|Key Value Pairs|Message|#]
예를 들면 다음과 같습니다.
[#|2006-10-21T13:25:53.852-0400|INFO|sun-appserver9.1|javax.enterprise. system.core|_ThreadID=13;|CORE5004: Resource Deployed: [cr:jms/DurableConnectionFactory].|#]
이 예에서
[# 및 #]은 레코드의 시작과 끝을 표시합니다.
세로 막대(|)는 레코드 필드를 구분합니다.
2006-10-21T13:25:53.852-0400은 날짜와 시간을 지정합니다.
Log Level은 INFO입니다. 이 수준은 다음 값 중 하나일 수 있습니다. SEVERE, WARNING, INFO, CONFIG, FINE, FINER 및 FINEST
ProductName-Version은 sun-appserver9.1입니다.
LoggerName은 로그 모듈의 소스를 식별하는 계층적 로거 이름 공간이며, 이 경우에는 javax.enterprise.system.core입니다.
Key Value Pairs는 키 이름과 값입니다. 대개는 _ThreadID=14; 같은 스레드 아이디입니다.
Message는 로그 메시지의 텍스트입니다. 모든 Application Server SEVERE 및 WARNING 메시지와 대부분의 INFO 메시지는 모듈 코드와 숫자 값(이 경우 CORE5004)으로 구성된 메시지 아이디로 시작합니다.
이후 릴리스에서 로그 레코드 형식이 변경되거나 향상될 수 있습니다.
Application Server는 각 모듈에 대한 로거를 제공합니다. 다음 표는 모듈 이름과 각 로거에 대한 이름 공간을 관리 콘솔의 로그 수준 페이지에 표시되는 것처럼 알파벳 순서로 나열합니다. 로그 수준 구성을 참조하십시오. 표의 마지막 세 모듈은 로그 수준 페이지에 표시되지 않습니다.
표 17–1 Application Server 로거 이름 공간
모듈 이름 |
이름 공간 |
---|---|
관리 |
javax.enterprise.system.tools.admin |
클래스 로더 |
javax.enterprise.system.core.classloading |
구성 |
javax.enterprise.system.core.config |
커넥터 |
javax.enterprise.resource.resourceadapter |
CORBA |
javax.enterprise.resource.corba |
배포 |
javax.enterprise.system.tools.deployment |
EJB 컨테이너 |
javax.enterprise.system.container.ejb |
그룹 관리 서비스(클러스터 및 엔터프라이즈 프로필 전용) |
javax.ee.enterprise.system.gms |
JavaMail |
javax.enterprise.resource.javamail |
JAXR |
javax.enterprise.resource.webservices.registry |
JAXRPC |
javax.enterprise.resource.webservices.rpc |
JAXWS |
javax.enterprise.resource.webservices.javaws |
JBI |
com.sun.jbi |
JMS |
javax.enterprise.resource.jms |
JTA |
javax.enterprise.resource.jta |
JTS |
javax.enterprise.system.core.transaction |
MDB 컨테이너 |
javax.enterprise.system.container.ejb.mdb |
이름 지정 |
javax.enterprise.system.core.naming |
지속성 |
oracle.toplink.essentials, javax.enterprise.resource.jdo, javax.enterprise.system.container.cmp |
노드 에이전트(클러스터 및 엔터프라이즈 프로필 전용) |
javax.ee.enterprise.system.nodeagent |
루트 |
javax.enterprise |
SAAJ |
javax.enterprise.resource.webservices.saaj |
보안 |
javax.enterprise.system.core.security |
자체 관리 |
javax.enterprise.system.core.selfmanagement |
서버 |
javax.enterprise.system |
동기화(클러스터 및 엔터프라이즈 프로필 전용) |
javax.ee.enterprise.system.tools.synchronization |
Util |
javax.enterprise.system.util |
검증자 |
javax.enterprise.system.tools.verifier |
웹 컨테이너 |
javax.enterprise.system.container.web org.apache.catalina org.apache.coyote org.apache.jasper |
이 절은 다음 내용으로 구성되어 있습니다.
관리 콘솔을 사용하여 일반 로깅 설정을 구성하려면 다음을 수행합니다.
개발자 프로필의 경우 Application Server -> 로깅 -> 일반으로 이동합니다.
클러스터 및 엔터프라이즈 프로필의 경우 구성 -> 구성 -> 로깅 설정 -> 일반으로 이동합니다.
일반 페이지에서 적절한 값을 입력하여 요구 사항에 맞게 로깅을 사용자 정의합니다. Application Server를 중지하고 다시 시작합니다.
여러 구성 매개 변수의 설정에 대한 자세한 내용을 보려면 관리 콘솔에서 도움말을 누르십시오.
asadmin에서 이러한 로그 설정을 구성하려면 get 및 set 명령을 사용합니다.
관리 콘솔을 사용하여 로그 수준을 구성하려면 다음을 수행합니다.
개발자 프로필의 경우 Application Server -> 로깅 -> 로그 수준으로 이동합니다.
클러스터 및 엔터프라이즈 프로필의 경우 구성 -> 구성 -> 로깅 -> 로깅 설정 -> 로그 수준으로 이동합니다.
이 페이지에 나열된 모듈에 대한 로그 수준을 설정합니다. 추가 등록 정보 영역을 사용하여 응용 프로그램 로거에 대한 로그 수준을 구성합니다. 모듈 로거 목록을 보려면 로거 이름 공간 계층을 참조하십시오.
여러 구성 매개 변수의 설정에 대한 자세한 내용을 보려면 관리 콘솔에서 도움말을 누르십시오.
asadmin에서 이러한 로그 설정을 구성하려면 get 및 set 명령을 사용합니다.
로그 파일을 보려면 다음을 수행합니다.
개발자 프로필의 경우 Applications Server -> 로깅 -> 로그 파일 보기로 이동합니다.
클러스터 및 엔터프라이즈 프로필의 경우 구성 -> 구성 -> 로거 설정 -> 일반으로 이동하고 로그 파일 보기를 누릅니다.
검색 기준 영역에서 제공되는 옵션을 사용하여 기본 설정에 기반한 로그 결과를 표시합니다.
인스턴스 이름 — 드롭다운 목록에서 인스턴스 이름을 선택하여 해당 서버 인스턴스에 대한 로그를 확인합니다. 기본값은 현재 서버 인스턴스입니다.
로그 파일 — 드롭다운 목록에서 로그 파일 이름을 선택하여 해당 로그 내용을 확인합니다. 기본값은 server.log입니다.
타임스탬프 — 가장 최근 메시지를 보려면 가장 최근(기본값)을 선택합니다. 특정 기간의 메시지만 보려면 특정 범위를 선택하고 표시되는 시작 및 끝 필드에 날짜와 시간 값을 입력합니다. 시간 값의 경우 구문은 다음 형식을 따라야 합니다. 여기에서SSS는 밀리초의 약자입니다.
hh:mm:ss.SSS |
예를 들면 다음과 같습니다.
17:10:00.000 |
시작 값이 끝 값보다 이후일 경우 오류 메시지가 표시됩니다.
로그 수준 — 로그 수준별로 메시지를 필터링하려면 드롭다운 목록에서 로그 수준을 선택합니다. 기본적으로 선택한 로그 수준과 더 심각한 수준에서 서버 로그에 표시되는 모든 메시지가 표시됩니다. 선택한 수준의 메시지만 표시하려면 “더 심각한 메시지를 포함하지 않습니다.” 확인란을 선택합니다.
확인할 메시지가 서버 로그에 표시되게 하려면 먼저 로그 수준 페이지에서 적절한 로그 수준을 설정합니다. 로그 수준 구성을 참조하십시오.
로그 수준을 기준으로 로그 메시지를 필터링하도록 선택한 경우 지정한 필터 기준에 맞는 메시지만 표시됩니다. 그러나 이 필터링은 어떤 메시지를 서버 로그에 로깅할지에는 영향을 미치지 않습니다.
로깅 설정 페이지와 로그 수준 페이지에서 지정한 설정과 함께 서버 로그의 가장 최근 40개 항목이 표시됩니다.
타임스탬프 헤더 옆에 있는 화살표를 눌러 가장 최근 항목이 마지막으로 표시되도록 메시지를 정렬합니다.
메시지를 형식이 지정된 모양으로 보려면 다음과 같이 표시된 링크를 누릅니다.
(세부 사항) |
로그 항목 세부 정보 창이 형식 지정된 버전의 메시지와 함께 표시됩니다.
항목 목록 끝에서 버튼을 눌러 로그 파일의 이전 또는 이후 항목을 확인합니다.
검색 기준 영역에서 고급 검색을 눌러 로그 뷰어를 더 구체화합니다. 다음과 같은 고급 옵션 필드를 사용합니다.
로거 — 모듈별로 필터링하려면 드롭다운 목록에서 하나 이상의 이름 공간을 선택합니다. 또는 Shift 키나 Control 키를 누르면 여러 이름 공간을 선택할 수 있습니다.
더 높은 수준의 이름 공간을 선택하면 그 아래에 있는 모든 이름 공간이 선택됩니다. 예를 들어, javax.enterprise.system을 선택하면 해당 이름 공간에 속한 모든 모듈에 대한 로거도 선택됩니다(예: javax.enterprise.system.core, javax.enterprise.system.tools.admin 등).
사용자 정의 로거 — 특정 응용 프로그램에 관련된 로거의 메시지를 보려면 텍스트 필드에 로거 이름을 한 줄에 하나씩 입력합니다. 응용 프로그램에 여러 모듈이 있을 경우 모두 표시하거나 선택해서 표시할 수 있습니다. 예를 들어 응용 프로그램에 다음과 같은 이름의 로거가 있다고 가정합니다.
com.mycompany.myapp.module1 com.mycompany.myapp.module2 com.mycompany.myapp.module3 |
응용 프로그램에 있는 모든 모듈의 메시지를 보려면 com.mycompany.myapp를 입력합니다. module2의 메시지만 확인하려면 com.mycompany.myapp.module2를 입력합니다.
사용자 정의 로거를 하나 이상 지정한 경우 해당 로거를 로거 영역에 명시적으로 지정해야만 Application Server 모듈의 메시지가 표시됩니다.
이름 값 쌍 — 특정한 스레드의 출력을 보려면 텍스트 필드에서 해당 스레드에 대한 키 이름과 값을 입력합니다. 키 이름은 _ThreadID입니다. 예를 들면 다음과 같습니다.
_ThreadID=13 |
com.mycompany.myapp.module2가 여러 스레드에서 실행되는 것으로 가정합니다. 단일 스레드의 출력만 표시하도록 로거 뷰어를 구체화하려면 사용자 정의 로거 필드에서 모듈의 로거를 지정한 다음 이 필드에서 스레드 아이디를 지정합니다.
표시 — 한 번에 40개 이상(기본값)의 메시지를 보려면 드롭다운 목록에서 사용 가능한 값(100, 250 또는 1000) 중 하나를 선택합니다.
스택 추적을 보려면 “과도하게 긴 메시지 제한” 확인란을 선택 취소합니다. 기본적으로 스택 추적은 뷰어에 표시되지 않습니다. 스택 추적을 보려면 메시지의 (세부 사항) 링크를 누릅니다.
고급 옵션 영역을 숨기려면 기본 검색을 누릅니다.