10.3. 로깅 하위 시스템 구성 개요


JBoss EAP 로깅 하위 시스템은 구성에 로그 카테고리로그 처리기를 사용합니다. 로그 카테고리는 캡처할 메시지를 지정하는 반면 로그 처리기는 디스크에 작성하거나 콘솔에 전송하는 등 이러한 메시지를 처리하는 방법을 정의합니다.

애플리케이션 로깅 프로필을 사용하면 기본 로깅 설정과 별도로 배포 또는 여러 배포에 할당할 수 있는 고유하게 이름이 지정된 로깅 구성을 만들 수 있습니다. 로깅 프로파일 구성은 기본 로깅 하위 시스템의 구성과 거의 동일합니다.

10.3.1. 루트 로거 구성

JBoss EAP 루트 로거는 로거에서 캡처하지 않는 지정된 로그 수준 이상에서 모든 로그 메시지를 캡처합니다. 그러나 정의된 로거에 use-parent-handlers 가 true로 설정되어 있고 처리기도 정의된 경우 정의된 로거와 루트 로거를 사용하여 메시지를 처리합니다.

기본적으로 루트 로거는 콘솔과 server.log 파일에 쓰는 주기적인 로그 처리기를 사용합니다. 이 파일은 일반적으로 서버 로그라고 합니다.

10.3.2. JBoss EAP의 로그 카테고리

로그 카테고리는 캡처할 로그 메시지 세트와 해당 메시지를 처리할 하나 이상의 로그 처리기를 정의합니다.

로그 메시지는 지정된 원본 및 로그 수준에 따라 결정됩니다. 모든 문자열 값을 지정할 수 있습니다. 그러나 패키지 이름 또는 클래스 이름을 사용하는 것이 좋습니다. 로거 이름은 점 표기법을 사용하여 지정됩니다(예: Logger.getLogger("example.logger.name"). 로그 관리자는 이름의 각 섹션을 처리하고 일치하는 구성을 확인합니다. find 및 use-parent-handlers 가 false로 설정되면 프로세스가 중지됩니다. 구성이 정의되지 않았거나 use-parent-handlers 가 true로 설정된 경우 기본적으로 로그 관리자는 "example.logger"와 같은 상위 이름을 계속 확인합니다. 로거 구성은 패키지 또는 클래스 이름이 아닌 로거 생성 방법에 따라 다릅니다.

참고

로그 카테고리는 일반적으로 Java 패키지 및 클래스 이름을 기반으로 하지만 Logger.getLogger(LOGGER_NAME) 메서드에서 지정하는 모든 이름일 수 있습니다.

로거에 처리기가 할당될 수 있습니다. use-parent-handlersfalse 로 설정된 경우 로거에서 loggable로 결정하더라도 더 높은 수준의 로거가 메시지를 처리하지 않습니다. 예를 들어 로거 이름이 org.jboss.as.logging 이고 use-parent-handlers=false 로 구성된 경우 org.jboss.as 로거를 확인하지 않습니다.

10.3.3. JBoss EAP의 로그 처리기

로그 처리기는 캡처된 로그 메시지가 기록되는 방식을 정의하고 항목의 대상 및 형식을 지정합니다. 각 유형이 다양한 요구 사항에 맞는 고유한 용도로 제공되므로 다양한 유형의 로그 처리기를 이해하는 것이 중요합니다.

참고

활성화하려면 로그 처리기를 하나 이상의 로거에 추가해야 합니다.

10.3.3.1. 로그 처리기 유형

로그 처리기는 로그 항목이 처리 및 저장되는 방법을 결정하는 여러 유형으로 분류됩니다. 각 유형에는 다양한 로깅 요구 사항을 충족하는 고유한 기능이 있습니다.

  • 콘솔: 호스트 운영 체제의 표준 아웃, stdout 또는 표준 오류, stderr, stream에 로그 메시지를 작성합니다. 이러한 메시지는 JBoss EAP가 명령줄 프롬프트에서 실행되면 표시됩니다. 콘솔 로그 처리기의 메시지는 표준 출력 또는 표준 오류 스트림을 캡처하도록 운영 체제를 구성하지 않는 한 저장되지 않습니다.
  • 파일: 지정된 파일에 로그 메시지를 작성합니다.
  • periodic: 지정된 기간이 경과할 때까지 이름이 지정된 파일에 로그 메시지를 작성합니다. 그 후 파일의 이름이 타임스탬프로 변경되고 처리기는 원래 이름으로 새로 생성된 로그 파일에 계속 씁니다.
  • size: 파일이 지정된 크기에 도달할 때까지 이름이 지정된 파일에 로그 메시지를 씁니다. 파일이 해당 크기에 도달하면 숫자 접미사로 이름이 변경되고 처리기는 원래 이름을 사용하여 새로 생성된 로그 파일에 계속 씁니다. 각 크기 로그 처리기는 이러한 방식으로 유지할 최대 파일 수를 지정해야 합니다.
  • periodic Size: 파일이 지정된 크기에 도달하거나 지정된 기간이 만료될 때까지 이름이 지정된 파일에 로그 메시지를 작성합니다. 그러면 처리기에서 파일의 이름을 바꾸고 새로 생성된 로그 파일에 원래 이름으로 계속 씁니다. 이 처리기는 periodic 및 size 로그 처리기의 기능을 결합합니다.
  • syslog: 원격 로깅 서버로 메시지를 보냅니다. 이를 통해 여러 애플리케이션에서 구문 분석을 위해 로그 메시지를 동일한 서버로 보낼 수 있습니다.
  • 소켓: 소켓 을 통해 로그 메시지를 원격 로깅 서버로 보냅니다. TCP 또는 UDP 소켓을 사용할 수 있습니다.
  • Custom: 새로운 유형의 로그 처리기를 구성할 수 있습니다. 사용자 지정 처리기는 java.util.logging.Handler 를 확장하고 모듈에 포함하는 Java 클래스로 구현해야 합니다. Log4J appender를 사용자 지정 로그 처리기로 사용할 수도 있습니다.
  • 하나 이상의 다른 로그 처리기에 대한 비동기 동작을 제공합니다. 이 기능은 네트워크 파일 시스템에 로그 파일 쓰기와 같이 대기 시간이 길거나 성능 문제가 발생할 수 있는 로그 처리기에 유용합니다.

10.3.4. JBoss EAP에서 지원되는 로그 수준

로그 수준은 로그 메시지의 특성 및 심각도를 나타내는 열거된 값입니다. 개발자는 선택한 로깅 프레임워크의 적절한 방법을 사용하여 메시지를 전송하여 로그 메시지의 수준을 지정할 수 있습니다.

JBoss EAP는 지원되는 애플리케이션 로깅 프레임워크에서 사용하는 모든 로그 수준을 지원합니다. 가장 일반적으로 사용되는 로그 수준은 TRACE,DEBUG,INFO,WARN,ERRORFATAL 입니다.

로그 수준은 로그 카테고리 및 핸들러에서 처리하는 메시지를 제한하는 데 도움이 됩니다. 각 로그 수준에는 다른 로그 수준을 기준으로 순서를 나타내는 숫자 값이 할당됩니다. 로그 카테고리 및 핸들러에는 로그 수준이 할당되고 해당 수준 이상의 로그 메시지만 처리합니다. 예를 들어 WARN 수준이 있는 로그 처리기는 WARN ,ERRORFATAL 에 메시지를 기록합니다.

Expand
표 10.3. 지원되는 로그 수준
로그 수준현재의설명

ALL

Integer.MIN_VALUE

모든 로그 메시지를 제공합니다.

FINEST

300

-

FINER

400

-

TRACE

400

TRACE 수준 로그 메시지는 애플리케이션 실행 상태에 대한 자세한 정보를 제공하며 일반적으로 디버깅 중에만 캡처됩니다.

DEBUG

500

DEBUG 수준 로그 메시지는 개별 요청 또는 애플리케이션 작업의 진행 상황을 나타내며 일반적으로 디버깅 중에만 캡처됩니다.

OK

500

-

CONFIG

700

-

INFO

800

INFO 수준 로그 메시지는 애플리케이션의 전체 진행 상황을 나타냅니다. 애플리케이션 시작, 종료 및 기타 주요 라이프사이클 이벤트에 자주 사용됩니다.

WARN

900

WARN 수준 로그 메시지는 오류가 아니지만 이상적이지 않은 상황을 나타냅니다. WARN 로그 메시지는 향후 오류가 발생할 수 있는 상황을 나타낼 수 있습니다.

경고

900

-

오류

1000

ERROR 수준 로그 메시지는 현재 활동 또는 요청이 완료되지 않도록 할 수 있지만 애플리케이션이 실행되지 않도록 하는 오류를 나타냅니다.

심각

1000

-

치명적

1100

FATAL 수준 로그 메시지는 중요한 서비스 오류 및 애플리케이션 종료를 일으킬 수 있는 이벤트를 표시하여 JBoss EAP 종료로 이어질 수 있습니다.

OFF

Integer.MAX_VALUE

로그 메시지를 표시하지 않습니다.

참고

ALL 은 가장 낮은 로그 수준이며 모든 로그 수준의 메시지를 포함합니다. 이는 가장 많은 로깅을 제공합니다.

FATAL 은 가장 높은 로그 수준이며 해당 수준의 메시지만 포함합니다. 이는 최소 로깅 양을 제공합니다.

10.3.5. JBoss EAP의 로그 형식 생성

로그 형식 LimitRange는 로그 메시지를 포맷하는 데 사용됩니다. named-formatter 특성을 사용하여 로깅 처리기에 포맷터를 할당할 수 있습니다.

10.3.5.1. 로그 포맷의 유형

로그 포맷터는 로그 항목의 포맷 방법을 결정하는 여러 유형으로 분류됩니다.

로깅 하위 시스템에는 다음 네 가지 유형의 포맷이 포함됩니다.

  • pattern formatter: 일반 텍스트로 로그 메시지를 포맷합니다. formatter 를 로그 처리기의 named-formatter 속성으로 사용하는 것 외에도 먼저 포맷터 리소스를 생성할 필요 없이 포맷터 속성으로 사용할 수도 있습니다.
  • JSON formatter: JSON으로 로그 메시지를 포맷합니다.
  • XML formatter: XML로 로그 메시지를 포맷합니다.
  • 사용자 지정 포맷터: 처리기와 함께 사용됩니다. 대부분의 로그 레코드는 Cryostat 형식으로 포맷됩니다. 포맷터는 적절한 포맷을 위해 org.jboss.logmanager.ExtLogRecord#getFormattedMessage() 를 호출해야 할 수 있습니다.

10.3.6. JBoss EAP에서 로깅을 위한 필터 표현식

filter-spec 특성을 사용하여 구성된 필터 표현식은 다양한 기준에 따라 로그 메시지를 기록합니다. 필터는 포맷되지 않은 원시 메시지에 적용됩니다. 로거 또는 처리기에 필터를 추가할 수 있지만 로거 필터는 처리기에 배치된 필터보다 우선합니다.

참고

루트 로거에 대해 지정된 필터 사양 은 다른 로거에 상속되지 않습니다. 대신 처리기당 필터 사양 을 지정해야 합니다.

다음 표에서는 로깅에 사용 가능한 필터 표현식을 설명합니다.

Expand
표 10.4. 로깅에 대한 필터 표현식
필터 표현식설명

accept

모든 로그 메시지를 수락합니다.

deny

모든 로그 메시지를 거부합니다.

not[filter expression]

단일 필터 표현식의 반전된 값을 반환합니다. 예를 들면 다음과 같습니다.

not(match("WFLY"))

all[filter expression]

쉼표로 구분된 필터 표현식 목록에서 연결된 값을 반환합니다. 예를 들면 다음과 같습니다.

all(match("WFLY"),match("WELD"))

any[filter expression]

쉼표로 구분된 필터 표현식 목록에서 하나의 값을 반환합니다. 예를 들면 다음과 같습니다.

any(match("WFLY"),match("WELD"))

levelChange[level]

지정된 수준으로 로그 레코드를 업데이트합니다. 예를 들면 다음과 같습니다.

levelChange(WARN)

levels[levels]

쉼표로 구분된 수준 목록에 나열된 수준으로 로그 메시지를 필터링합니다. 예를 들면 다음과 같습니다.

수준 (DEBUG,INFO,WARN,ERROR)

levelRange[minLevel,maxLevel]

지정된 수준 범위 내에서 로그 메시지를 필터링합니다. [] 문자는 포함 수준을 나타내는 데 사용됩니다. () 문자는 배타적 수준을 나타내는 데 사용됩니다. 예를 들면 다음과 같습니다.

  • levelRange[INFO,ERROR]

    • 최소 수준은 INFO 보다 크거나 같아야 하며 최대 수준은 ERROR 보다 작거나 같아야 합니다.
  • levelRange[DEBUG,ERROR)

    • 최소 수준은 DEBUG 보다 크거나 같아야 하며 최대 수준은 ERROR 보다 작아야 합니다.

match["pattern"]

제공된 정규식을 사용하여 로그 메시지를 필터링합니다. 예를 들면 다음과 같습니다.

match("WFLY\d+")

substitute["pattern","replacement value"]

패턴(first argument)에 대한 첫 번째 일치 항목을 대체 텍스트(두 번째 인수)로 바꿉니다. 예를 들면 다음과 같습니다.

substitute("WFLY","EAP")

substituteAll["pattern","replacement value"]

패턴(first argument)의 모든 일치 항목을 대체 텍스트(두 번째 인수)로 바꿉니다. 예를 들면 다음과 같습니다.

substituteAll("WFLY","EAP")

참고

관리 CLI를 사용하여 필터 표현식을 구성할 때 필터 텍스트에서 쉼표와 인용 표시를 이스케이프하여 값이 문자열로 올바르게 처리되도록 합니다. 쉼표와 따옴표 앞에 백슬래시(\)를 사용하고 전체 표현식을 따옴표로 래핑해야 합니다. 다음은 적절하게 이스케이프하는 예제입니다 All("WFLY","YLFW").

/subsystem=logging/console-handler=CONSOLE:write-attribute(name=filter-spec, value="substituteAll(\"WFLY\"\,\"YLFW\")")

10.3.7. JBoss EAP의 암시적 로깅 종속성

기본적으로 JBoss EAP 로깅 하위 시스템은 암시적 로깅 API 종속 항목을 배포에 추가합니다. 기본적으로 true 로 설정된 add-logging-api-dependencies 특성을 사용하여 이러한 암시적 종속성이 배포에 추가되는지 여부를 관리할 수 있습니다.

이러한 종속성이 추가되지 않도록 하려면 관리 CLI를 사용하여 add-logging-api-dependencies 특성을 false 로 설정합니다.

/subsystem=logging:write-attribute(name=add-logging-api-dependencies, value=false)
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동