11장. JBoss EAP로 로깅
JBoss EAP는 자체 내부 용도와 배포된 애플리케이션에서 사용할 수 있도록 구성 가능한 로깅 기능을 제공합니다. 로깅 하위 시스템은 JBoss LogManager를 기반으로 하며 JBoss Logging 외에도 여러 타사 애플리케이션 로깅 프레임워크를 지원합니다.
11.1. 서버 로깅 정보 링크 복사링크가 클립보드에 복사되었습니다!
11.1.1. 서버 로깅 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 모든 JBoss EAP 로그 항목은 server.log 파일에 작성됩니다. 이 파일의 위치는 작동 모드에 따라 다릅니다.
-
독립 실행형 서버:
EAP_HOME/standalone/log/server.log -
관리형 도메인:
EAP_HOME/domain/servers/SERVER_NAME/log/server.log
이 파일은 종종 서버 로그라고 합니다. 자세한 내용은 Root Logger 섹션을 참조하십시오.
11.1.2. 부트업 로깅 링크 복사링크가 클립보드에 복사되었습니다!
부팅 중에 JBoss EAP는 Java 환경과 각 서비스의 시작에 대한 정보를 기록합니다. 이 로그는 문제를 해결할 때 유용할 수 있습니다. 기본적으로 모든 로그 항목은 서버 로그에 기록됩니다.
부팅 로깅 구성은 logging.properties 구성 파일에서 지정되며, 이 파일은 JBoss EAP 로깅 하위 시스템이 시작될 때까지 활성화되고 이를 대신합니다. 이 파일의 위치는 작동 모드에 따라 다릅니다.
-
독립 실행형 서버:
EAP_HOME/standalone/configuration/logging.properties 관리형 도메인:
도메인 컨트롤러와 각 서버에 대해
logging.properties파일이 있습니다.-
도메인 컨트롤러:
EAP_HOME/domain/configuration/logging.properties -
서버:
EAP_HOME/domain/servers/SERVER_NAME/data/logging.properties
-
도메인 컨트롤러:
필요한 특정 사용 사례를 모르는 경우를 제외하고 logging.properties 파일을 직접 편집하지 않는 것이 좋습니다. 이 작업을 수행하기 전에 Red Hat 고객 포털에서 지원 사례를 여는 것이 좋습니다.
logging.properties 파일에서 수동으로 변경한 내용은 시작 시 덮어씁니다.
11.1.2.1. 부팅 오류 보기 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 문제를 해결할 때 부팅 중에 발생한 오류를 확인하는 것은 첫 번째 단계 중 하나여야 합니다. 그런 다음 제공된 정보를 사용하여 원인을 진단하고 해결할 수 있습니다. 부팅 오류 해결에 대한 지원 케이스를 엽니다.
부팅 오류를 보는 방법에는 각각 두 가지 이점이 있습니다. read -boot-errors 관리 CLI 명령을 사용하여 server.log 파일을 검사하거나 부팅 오류를 읽을 수 있습니다.
서버 로그 파일 검사
server.log 파일을 열어 부팅 중에 발생한 오류를 볼 수 있습니다.
이 방법을 사용하면 각 오류 메시지를 관련 메시지와 함께 확인할 수 있으므로 오류가 발생한 이유에 대한 자세한 정보를 얻을 수 있습니다. 또한 일반 텍스트 형식으로 오류 메시지를 볼 수 있습니다.
-
파일 뷰어에서 파일
server.log를 엽니다. - 파일의 끝으로 이동합니다.
-
최신 부팅 시퀀스의 시작을 나타내는
WFLYSRV0049메시지 식별자를 뒤로 검색합니다. -
해당 지점에서
ERROR인스턴스의 로그를 검색합니다. 각 인스턴스에는 오류에 대한 설명이 포함되어 있으며 관련 모듈을 나열합니다.
다음은 server.log 로그 파일의 오류 설명 예입니다.
2016-03-16 14:32:01,627 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.undertow.listener.default: org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener
at org.wildfly.extension.undertow.ListenerService.start(ListenerService.java:142)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.BindException: Address already in use
...
관리 CLI에서 부팅 오류 읽기
read-boot-errors 관리 CLI 명령을 사용하여 서버가 시작되지만 부팅 중에 오류가 보고되는 경우 오류를 볼 수 있습니다.
이 방법은 서버의 파일 시스템에 대한 액세스 권한이 필요하지 않으므로 파일 시스템 액세스 권한이 없는 오류에 대한 모니터링에 유용합니다. 관리 CLI 명령이므로 스크립트에서 사용할 수 있습니다. 예를 들어 여러 JBoss EAP 인스턴스를 시작하는 스크립트를 작성한 다음 부팅 시 발생한 오류를 확인할 수 있습니다.
다음 관리 CLI 명령을 실행합니다.
/core-service=management:read-boot-errors
부팅 중에 발생한 모든 오류가 표시됩니다.
{
"outcome" => "success",
"result" => [
{
"failed-operation" => {
"operation" => "add",
"address" => [
("subsystem" => "undertow"),
("server" => "default-server"),
("http-listener" => "default")
]
},
"failure-description" => "{\"WFLYCTL0080: Failed services\" => {\"jboss.undertow.listener.default\" => \"org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener
Caused by: java.net.BindException: Address already in use\"}}",
"failed-services" => {"jboss.undertow.listener.default" => "org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener
Caused by: java.net.BindException: Address already in use"}
}
...
]
}
11.1.3. 가비지 컬렉션 로깅 링크 복사링크가 클립보드에 복사되었습니다!
가비지 컬렉션 로깅은 모든 가비지 컬렉션 활동을 일반 텍스트 로그 파일에 기록합니다. 이러한 로그 파일은 진단 목적으로 유용할 수 있습니다. 가비지 컬렉션 로깅은 IBM Java 개발 키트를 제외한 지원되는 모든 구성에서 JBoss EAP 독립 실행형 서버에 기본적으로 활성화됩니다.
가비지 컬렉션 로그의 위치는 EAP_HOME/standalone/log/gc.log.DIGIT.current 입니다. 가비지 컬렉션 로그는 각각 3MB로 제한되며 최대 5개의 파일이 순환됩니다.
가비지 컬렉션 로깅을 활성화하는 것이 좋습니다. 문제 해결에 유용할 수 있으며 오버헤드가 최소화되어야 합니다. 그러나 서버를 시작하기 전에 GC_LOG 변수를 false 로 설정하여 독립 실행형 서버에 대한 가비지 컬렉션 로깅을 비활성화할 수 있습니다. 예를 들면 다음과 같습니다.
$ export GC_LOG=false
$ EAP_HOME/bin/standalone.sh
11.1.4. 기본 로그 파일 위치 링크 복사링크가 클립보드에 복사되었습니다!
다음 로그 파일이 기본 로깅 구성에 대해 생성됩니다. 기본 구성은 주기적인 로그 핸들러를 사용하여 서버 로그 파일을 작성합니다.
| 로그 파일 | 설명 |
|---|---|
| EAP_HOME/standalone/log/server.log | 서버 시작 메시지를 포함하여 서버 로그 메시지를 포함합니다. |
| EAP_HOME/standalone/log/gc.log.DIGIT.current | 가비지 컬렉션 세부 정보를 포함합니다. |
| 로그 파일 | 설명 |
|---|---|
| EAP_HOME/domain/log/host-controller.log | 호스트 컨트롤러 시작과 관련된 로그 메시지를 포함합니다. |
| EAP_HOME/domain/log/process-controller.log | 프로세스 컨트롤러 시작과 관련된 로그 메시지를 포함합니다. |
| EAP_HOME/domain/servers/SERVER_NAME/log/server.log | 서버 시작 메시지를 포함하여 명명된 서버에 대한 로그 메시지를 포함합니다. |
11.1.5. 서버의 기본 로케일 설정 링크 복사링크가 클립보드에 복사되었습니다!
적절한 시작 구성 파일에서 JVM 속성을 설정하여 JBoss EAP의 기본 로케일을 구성할 수 있습니다. 시작 구성 파일은 독립 실행형 서버에 대한 EAP_HOME/bin/standalone.conf 또는 관리형 도메인의 EAP_HOME/bin/domain.conf 입니다.
Windows Server의 경우 JBoss EAP 시작 구성 파일은 standalone.conf.bat 및 domain.conf.bat 입니다.
국제화 및 현지화된 로그 메시지는 이 기본 로케일을 사용합니다. 국제화된 로그 메시지 생성에 대한 정보는 JBoss EAP 개발 가이드를 참조하십시오.
언어 설정
JAVA_OPTS 변수를 사용하여 user.language 속성을 설정하여 언어를 지정합니다. 예를 들어 시작 구성 파일에 다음 행을 추가하여 프랑스어 로케일을 설정합니다.
JAVA_OPTS="$JAVA_OPTS -Duser.language=fr"
국제화 및 현지화된 로그 메시지가 이제 프랑스어로 출력됩니다.
언어 및 국가 설정
언어 외에도 user.country 속성을 설정하여 국가를 지정해야 할 수도 있습니다. 예를 들어 시작 구성 파일에 다음 행을 추가하여 브라질의 포르투갈어 로케일을 설정합니다.
JAVA_OPTS="$JAVA_OPTS -Duser.language=pt -Duser.country=BR"
국제화 및 현지화된 로그 메시지가 이제 브라질 포르투갈어로 출력됩니다.
org.jboss.logging.locale 속성을 사용하여 서버 로케일 설정
JBoss EAP의 모든 메시지와 소유 종속성을 포함하여 JBoss Logging을 사용하여 기록된 메시지의 로케일을 재정의하도록 org.jboss.logging.locale 속성을 구성할 수 있습니다. Jakarta Server Faces와 같은 기타 종속 항목은 재정의된 로케일을 가져올 수 없습니다.
시스템 기본값과 다른 로케일로 JBoss EAP 서버를 시작하려면 운영 모드에 따라 EAP_HOME/bin/standalone.conf 또는 EAP_HOME/bin/domain.conf 파일을 편집하고 다음 명령을 추가하여 필요한 로케일의 JVM 매개 변수를 설정할 수 있습니다. 속성 값은 BCP 47 형식으로 지정해야 합니다. 예를 들어 브라질 포르투갈어를 설정하려면 pt-BR을 사용합니다.
JAVA_OPTS="$JAVA_OPTS -Dorg.jboss.logging.locale=pt-BR"