12.8. 애플리케이션 로깅 정보
애플리케이션 로깅은 JBoss EAP 로깅
하위 시스템 또는 배포별로 구성할 수 있습니다.
로그 메시지를 캡처하려면 JBoss EAP 로그 카테고리 및 처리기를 사용하려면 로깅 유형 정보를 참조하십시오.
지원되는 애플리케이션 로깅 프레임워크 및 배포별 로깅 구성과 같은 애플리케이션 로깅에 대한 자세한 내용은 JBoss EAP 개발 가이드의 로깅 장을 참조하십시오.
12.8.1. 배포별 로깅
배포별 로깅을 사용하면 개발자가 애플리케이션에 대한 로깅 구성을 미리 구성할 수 있습니다. 애플리케이션이 배포되면 정의된 구성에 따라 로깅이 시작됩니다. 이 구성을 통해 생성된 로그 파일에는 애플리케이션의 동작에 대한 정보만 포함되어 있습니다.
배포별 로깅 구성이 완료되지 않으면 로깅
하위 시스템의 구성은 모든 애플리케이션과 서버에 사용됩니다.
이 접근 방식은 시스템 전체 로깅을 사용하는 경우의 장단점이 있습니다. 이점은 JBoss EAP 인스턴스의 관리자가 서버 로깅 이외의 다른 로깅을 구성할 필요가 없다는 점입니다. 단점은 배포별 로깅 구성이 서버 시작에서만 읽혀 있으므로 런타임 시 변경할 수 없다는 것입니다.
애플리케이션에서 배포별 로깅을 사용하는 방법에 대한 자세한 내용은 JBoss EAP 개발 가이드의 애플리케이션에 Per-deployment Logging 추가 를 참조하십시오.
12.8.1.1. 배포별 로깅 비활성화
다음 방법 중 하나로 배포별 로깅을 비활성화할 수 있습니다.
use-deployment-logging-config
속성을false
로 설정합니다.use-deployment-logging-config
속성은 배포별 로깅을 위해 배포 스캔 여부를 제어합니다. 기본값은true
입니다. 이 속성을false
로 설정하여 배포별 로깅을 비활성화할 수 있습니다./subsystem=logging:write-attribute(name=use-deployment-logging-config,value=false)
jboss-deployment-structure.xml
파일을 사용하여로깅
하위 시스템을 제외합니다.자세한 내용은 JBoss EAP 개발 가이드 의 배포에서 제외 를 참조하십시오.
12.8.2. 로깅 프로필
로깅 프로필은 배포된 애플리케이션에 할당할 수 있는 독립적인 로깅 구성 세트입니다. 일반 로깅 하위 시스템과 마찬가지로 로깅
프로필은 처리기, 카테고리 및 루트 로거를 정의할 수 있지만 다른 프로필이나 기본 로깅
하위 시스템의 구성을 참조할 수 없습니다. 로깅 프로필의 설계는 구성이 용이하도록 로깅
하위 시스템을 모방합니다.
로깅 프로필을 사용하면 관리자가 다른 로깅 구성에 영향을 주지 않고 하나 이상의 애플리케이션에 고유한 로깅 구성을 생성할 수 있습니다. 각 프로필은 서버 구성에 정의되므로 영향을 받는 애플리케이션을 재배포하지 않고도 로깅 구성을 변경할 수 있습니다. 그러나 로깅 프로필은 관리 콘솔을 사용하여 구성할 수 없습니다.
각 로깅 프로필에는 다음이 포함될 수 있습니다.
- 고유한 이름(필수)
- 원하는 수의 로그 처리기
- 임의의 수의 로그 카테고리
- 최대 하나의 루트 로거
애플리케이션은 Logging-Profile
특성을 사용하여 MANIFEST.MF
파일에서 사용할 로깅 프로필을 지정할 수 있습니다.
12.8.2.1. 로깅 프로필 구성
로깅 프로필은 로그 처리기, 카테고리 및 루트 로거를 사용하여 구성할 수 있습니다. 로깅 프로필 구성에서는 다음과 같은 차이점을 제외하고 로깅
하위 시스템을 구성하는 것과 동일한 구문을 사용합니다.
-
루트 구성 경로는
/subsystem=logging/logging-profile=NAME
입니다. - 로깅 프로필에는 다른 로깅 프로필이 포함될 수 없습니다.
로깅
하위 시스템에는 로깅 프로필에 사용할 수 없는 다음 속성이 있습니다.-
add-logging-api-dependencies
-
use-deployment-logging-config
-
로깅 프로필 생성 및 구성
다음 절차에서는 관리 CLI를 사용하여 로깅 프로필을 생성하고 파일 처리기 및 로거 범주를 설정합니다.
로깅 프로필을 생성합니다.
/subsystem=logging/logging-profile=PROFILE_NAME:add
파일 처리기를 생성합니다.
/subsystem=logging/logging-profile=PROFILE_NAME/file-handler=FILE_HANDLER_NAME:add(file={path=>"LOG_NAME.log", "relative-to"=>"jboss.server.log.dir"})
/subsystem=logging/logging-profile=PROFILE_NAME/file-handler=FILE_HANDLER_NAME:write-attribute(name="level", value="DEBUG")
파일 처리기 특성 목록은 파일 로그 처리기 특성을 참조하십시오.
로거 카테고리를 생성합니다.
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add(level=TRACE)
로그 카테고리 특성 목록은 로그 범주 특성을 참조하십시오.
카테고리에 파일 처리기를 할당합니다.
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add-handler(name="FILE_HANDLER_NAME")
그런 다음 MANIFEST.MF
파일의 애플리케이션에서 사용할 로깅 프로필을 설정할 수 있습니다. 자세한 내용은 JBoss EAP 개발 가이드 의 애플리케이션에서 로깅 프로필 지정을 참조하십시오.
12.8.2.2. 로깅 프로필 구성 예
이 예에서는 로깅 프로필 및 이를 사용하는 애플리케이션의 구성을 보여줍니다. 관리 CLI 명령, 결과 XML 및 애플리케이션의 MANIFEST.MF
파일이 표시됩니다.
예제 logging 프로파일에는 다음과 같은 특징이 있습니다.
-
이름은
accounts-app-profile
입니다. -
로그 카테고리는
com.company.accounts. Cryostats
입니다. -
로그 수준
TRACE
. -
로그 처리기는 Cryostat
-trace.log 파일을
사용하는 파일 처리기입니다.
관리 CLI 세션
/subsystem=logging/logging-profile=accounts-app-profile:add /subsystem=logging/logging-profile=accounts-app-profile/file-handler=ejb-trace-file:add(file={path=>"ejb-trace.log", "relative-to"=>"jboss.server.log.dir"}) /subsystem=logging/logging-profile=accounts-app-profile/file-handler=ejb-trace-file:write-attribute(name="level", value="DEBUG") /subsystem=logging/logging-profile=accounts-app-profile/logger=com.company.accounts.ejbs:add(level=TRACE) /subsystem=logging/logging-profile=accounts-app-profile/logger=com.company.accounts.ejbs:add-handler(name="ejb-trace-file")
XML 구성
<logging-profiles> <logging-profile name="accounts-app-profile"> <file-handler name="ejb-trace-file"> <level name="DEBUG"/> <file relative-to="jboss.server.log.dir" path="ejb-trace.log"/> </file-handler> <logger category="com.company.accounts.ejbs"> <level name="TRACE"/> <handlers> <handler name="ejb-trace-file"/> </handlers> </logger> </logging-profile> </logging-profiles>
애플리케이션 MANIFEST.MF 파일
Manifest-Version: 1.0 Logging-Profile: accounts-app-profile
12.8.3. 배포 로깅 구성 보기
다음 관리 CLI 명령을 사용하여 특정 배포의 로깅 구성에 대한 정보를 가져올 수 있습니다.
/deployment=DEPLOYMENT_NAME/subsystem=logging/configuration=CONFIG:read-resource
배포에 대한 로깅 구성 값(CONFIG
)은 다음 세 값 중 하나일 수 있습니다.
-
배포가
로깅
하위 시스템을 사용하는 경우기본
.로깅
하위 시스템 구성이 출력됩니다. -
배포가 로깅 하위 시스템에 정의된 로깅 프로필을 사용하는 경우
profile
-PROFILE_NAME.그러면 로깅 프로필 구성이 출력됩니다.
-
사용 중인 구성 파일의 경로입니다(예:
myear.ear/META-INF/logging.properties
).
예를 들어 아래 관리 CLI 명령은 지정된 배포에서 사용하는 MYPROFILE
로깅 프로필에 대한 구성을 표시합니다.
/deployment=mydeployment.war/subsystem=logging/configuration=profile-MYPROFILE:read-resource(recursive=true,include-runtime=true)
그러면 다음 정보가 출력됩니다.
{ "outcome" => "success", "result" => { "error-manager" => undefined, "filter" => undefined, "formatter" => { "MYFORMATTER" => { "class-name" => "org.jboss.logmanager.formatters.PatternFormatter", "module" => undefined, "properties" => {"pattern" => "%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"} } }, "handler" => { "MYPERIODIC" => { "class-name" => "org.jboss.logmanager.handlers.PeriodicRotatingFileHandler", "encoding" => undefined, "error-manager" => undefined, "filter" => undefined, "formatter" => "MYFORMATTER", "handlers" => [], "level" => "ALL", "module" => undefined, "properties" => { "append" => "true", "autoFlush" => "true", "enabled" => "true", "suffix" => ".yyyy-MM-dd", "fileName" => "EAP_HOME/standalone/log/deployment.log" } } }, "logger" => {"MYCATEGORY" => { "filter" => undefined, "handlers" => [], "level" => "DEBUG", "use-parent-handlers" => true }}, "pojo" => undefined } }
재귀 읽기-리소스
작업을 사용하여 로깅 구성 및 배포에 대한 기타 정보를 읽을 수도 있습니다.
/deployment=DEPLOYMENT_NAME/subsystem=logging:read-resource(include-runtime=true, recursive=true)