11.7. 로그 포맷터 구성
로그 포맷터는 해당 핸들러의 로그 메시지의 표시를 정의합니다. 로깅 하위 시스템을 사용하면 다음 유형의 로그 포맷터를 구성할 수 있습니다.
11.7.1. 패턴 포맷터 설정 링크 복사링크가 클립보드에 복사되었습니다!
로그 핸들러에서 로그 메시지를 포맷하기 위해 사용할 수 있는 명명된 패턴 포맷터를 생성할 수 있습니다.
로깅 프로필에 대해 이 로그 포맷터를 구성하는 경우 명령 시작은 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 / subsystem=logging/ 입니다.
또한 관리형 도메인에서 실행 중인 경우 /profile=PROFILE_NAME 을 사용하여 명령 앞에 추가합니다.
패턴 포맷터 만들기
패턴 포맷터를 정의할 때 로그 메시지를 포맷하는 데 사용할 패턴 문자열을 제공합니다. 패턴 구문에 대한 자세한 내용은 패턴 형식 형식 문자를 참조하십시오.
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:add(pattern=PATTERN)
예를 들어 기본 구성에서는 서버 로그에 메시지를 기록하는 데 다음 로그 포맷터 문자열을 사용합니다. %d{yyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n. 이렇게 하면 아래와 같이 포맷된 로그 메시지가 생성됩니다.
2016-03-18 15:49:32,075 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
색상 맵을 정의하여 다른 로그 수준에 컬러를 할당할 수도 있습니다. 형식은 쉼표로 구분된 LEVEL:COLOR 목록입니다.
-
유효한 수준:
shell,fine,,fineconfig,trace,debug,info,warning,warn,error,fatal,severe -
유효한 색상:
블랙,녹색,빨간색,노란색,파란색, magenta,cyan,화이트, Brightblack, Brightred, Brightgreen, Brightblue, Brightyellow, Brightmagenta,Brightcyan,Brightwhite
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:write-attribute(name=color-map,value="LEVEL:COLOR,LEVEL:COLOR")
관리 콘솔을 사용하여 패턴 로그 포맷터를 구성할 수도 있습니다.
- 브라우저에서 관리 콘솔을 엽니다.
-
구성
하위 시스템 로깅 을 선택합니다. - Configuration(구성) 을 선택한 다음 View(보기 )를 클릭합니다.
- Formatter를 선택한 다음 Pattern Formatter(패턴 형식) 옵션을 선택합니다.
11.7.2. JSON 로그 포맷터 구성 링크 복사링크가 클립보드에 복사되었습니다!
JSON 로그 포맷터를 생성하여 JSON에서 로그 메시지를 포맷할 수 있습니다.
로깅 프로필에 대해 이 로그 포맷터를 구성하는 경우 명령 시작은 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 / subsystem=logging/ 입니다.
또한 관리형 도메인에서 실행 중인 경우 /profile=PROFILE_NAME 을 사용하여 명령 앞에 추가합니다.
JSON 로그 포맷터 추가
/subsystem=logging/json-formatter=JSON_FORMATTER_NAME:add(pretty-print=true, exception-output-type=formatted)
이렇게 하면 아래와 같이 포맷된 로그 메시지가 생성됩니다.
{
"timestamp": "2018-10-18T13:53:43.031-04:00",
"sequence": 62,
"loggerClassName": "org.jboss.as.server.logging.ServerLogger_$logger",
"loggerName": "org.jboss.as",
"level": "INFO",
"message": "WFLYSRV0025: JBoss EAP 7.4.0.GA (WildFly Core 15.0.2.Final-redhat-00001) started in 5227ms - Started 317 of 556 services (343 services are lazy, passive or on-demand),
"threadName": "Controller Boot Thread",
"threadId": 22,
"mdc": {
},
"ndc": "",
"hostName": "localhost.localdomain",
"processName": "jboss-modules.jar",
"processId": 7461
}
Logstash JSON 로그 포맷터 추가
JSON 로그 포맷터 출력 키를 수정하고 정적 메타데이터를 추가할 수 있습니다. JSON 로그 포맷터의 주요 용도는 JSON에서 로그 메시지를 포맷하는 것입니다. Logstash는 이 JSON 출력을 사용하고 @timestamp 및 @version 필드를 검색합니다. 다음 예제에서는 Logstash에 대한 메시지를 포맷하는 JSON 로그 포맷터를 생성합니다.
/subsystem=logging/json-formatter=logstash:add(exception-output-type=formatted, key-overrides=[timestamp="@timestamp"], meta-data=[@version=1])
아래에 설명된 JSON formatter 속성을 사용할 수 있습니다.
-
key-overrides특성을 사용하여 정의된 키 이름을 재정의할 수 있습니다. -
예외는
exception-output-type특성을 포맷으로 설정하여 오브젝트로포맷할 수 있습니다. -
exception
-output-type 특성을 detailed로 설정하여 예외스택 추적을 포함할 수 있습니다. -
예외는
exception-output-type을 details-로 설정하여 오브젝트 및 스택 추적으로 포맷할 수 있습니다.and-formatted -
meta-data특성을 사용하여 메타데이터를 로그 레코드에 추가할 수 있습니다.
JSON 포맷터 속성에 대한 자세한 내용은 JSON 로그 포맷터 속성 에서 참조하십시오.
관리 콘솔을 사용하여 JSON 로그 포맷터를 구성할 수도 있습니다.
- 브라우저에서 관리 콘솔을 엽니다.
-
구성
하위 시스템 로깅 을 선택합니다. - Configuration(구성) 을 선택한 다음 View(보기 )를 클릭합니다.
- Formatter를 선택한 다음 JSON Formatter 옵션을 선택합니다.
11.7.3. XML 로그 포맷터 구성 링크 복사링크가 클립보드에 복사되었습니다!
XML 로그 포맷터를 생성하여 XML로 로그 메시지를 포맷할 수 있습니다.
로깅 프로필에 대해 이 로그 포맷터를 구성하는 경우 명령 시작은 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 / subsystem=logging/ 입니다.
또한 관리형 도메인에서 실행 중인 경우 /profile=PROFILE_NAME 을 사용하여 명령 앞에 추가합니다.
XML 로그 포맷터 추가
/subsystem=logging/xml-formatter=XML_FORMATTER_NAME:add(pretty-print=true, exception-output-type=detailed-and-formatted)
이렇게 하면 아래와 같이 로그 메시지가 생성됩니다.
<record>
<timestamp>2018-10-18T13:55:53.419-04:00</timestamp>
<sequence>62</sequence>
<loggerClassName>org.jboss.as.server.logging.ServerLogger_$logger</loggerClassName>
<loggerName>org.jboss.as</loggerName>
<level>INFO</level>
<message>WFLYSRV0025: {ProductCurrentVersionExamples} (WildFly Core 10.0.0.Final-redhat-20190924) started in 6271ms - Started 495 of 679 services (331 services are lazy, passive or on-demand)</message>
<threadName>Controller Boot Thread</threadName>
<threadId>22</threadId>
<mdc>
</mdc>
<ndc></ndc>
<hostName>localhost.localdomain</hostName>
<processName>jboss-modules.jar</processName>
<processId>7790</processId>
</record>
키 재정의 XML 로그 포맷 추가
/subsystem=logging/xml-formatter=XML_FORMATTER_NAME:add(pretty-print=true, print-namespace=true, namespace-uri="urn:custom:1.0", key-overrides={message=msg, record=logRecord, timestamp=date}, print-details=true)
아래 설명된 XML formatter 속성을 사용할 수 있습니다.
-
key-overrides특성을 사용하여 정의된 키 이름을 재정의할 수 있습니다. -
예외는
exception-output-type특성을 포맷으로 설정하여 오브젝트로포맷할 수 있습니다. -
exception
-output-type 특성을 detailed로 설정하여 예외스택 추적을 포함할 수 있습니다. -
예외는
exception-output-type을 details-로 설정하여 오브젝트 및 스택 추적으로 포맷할 수 있습니다.and-formatted -
meta-data특성을 사용하여 메타데이터를 로그 레코드에 추가할 수 있습니다.
XML formatter 속성에 대한 자세한 내용은 XML Log Formatter Attributes 를 참조하십시오.
관리 콘솔을 사용하여 XML 로그 포맷터를 구성할 수도 있습니다.
- 브라우저에서 관리 콘솔을 엽니다.
-
구성
하위 시스템 로깅 을 선택합니다. - Configuration(구성) 을 선택한 다음 View(보기 )를 클릭합니다.
- Formatter를 선택한 다음 XML Formatter 옵션을 선택합니다.
11.7.4. 사용자 정의 로그 포맷터 구성 링크 복사링크가 클립보드에 복사되었습니다!
로그 핸들러에서 로그 메시지를 포맷하기 위해 사용할 수 있는 사용자 지정 로그 포맷터를 생성할 수 있습니다.
이 섹션에서는 관리 CLI를 사용하여 사용자 지정 로그 포맷터를 구성하는 방법을 보여줍니다.
사용자 정의 로그 포맷터 구성
로깅 프로필에 대해 이 로그 포맷터를 구성하는 경우 명령 시작은 /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ 대신 / subsystem=logging/ 입니다.
또한 관리형 도메인에서 실행 중인 경우 /profile=PROFILE_NAME 을 사용하여 명령 앞에 추가합니다.
사용자 지정 로그 포맷터를 추가합니다.
사용자 정의 로그 포맷터를 추가할 때 formatter 및 여기에 포함된 JBoss EAP 모듈을 Java 클래스로 지정해야 합니다. 클래스는
java.util.logging.Formatter를확장해야 합니다.참고사용자 지정 formatter가 포함된 모듈을 이미 생성했으므로 이 명령이 실패합니다.
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:add(class=CLASS_NAME, module=MODULE_NAME)로그 포맷터에 필요한 속성을 설정합니다.
속성은 setter 메서드를 사용하여 액세스할 수 있어야 합니다.
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:write-attribute(name=properties.PROPERTY_NAME,value=PROPERTY_VALUE)사용자 지정 포맷터를 로그 핸들러에 할당합니다.
다음 관리 CLI 명령은 주기적인 회전 파일 핸들러에서 사용할 사용자 지정 포맷터를 할당합니다.
/subsystem=logging/periodic-rotating-file-handler=FILE_HANDLER_NAME:write-attribute(name=named-formatter, value=CUSTOM_FORMATTER_NAME)
사용자 지정 XML Formatter 예
다음 예제에서는 사용자 지정 XML 포맷터를 구성합니다. org.jboss 클래스를 사용하여 콘솔 로그 핸들러에 할당합니다.
.logmanager 모듈에 제공된 java.util.logging. XMLFormatter
/subsystem=logging/custom-formatter=custom-xml-formatter:add(class=java.util.logging.XMLFormatter, module=org.jboss.logmanager)
/subsystem=logging/console-handler=CONSOLE:write-attribute(name=named-formatter, value=custom-xml-formatter)
이 포맷터를 사용하는 로그 메시지는 다음과 같이 포맷됩니다.
<record>
<date>2016-03-23T12:58:13</date>
<millis>1458752293091</millis>
<sequence>93963</sequence>
<logger>org.jboss.as</logger>
<level>INFO</level>
<class>org.jboss.as.server.BootstrapListener</class>
<method>logAdminConsole</method>
<thread>22</thread>
<message>WFLYSRV0051: Admin console listening on http://%s:%d</message>
<param>127.0.0.1</param>
<param>9990</param>
</record>
관리 콘솔을 사용하여 사용자 정의 로그 포맷터 구성
관리 콘솔을 사용하여 로그 포맷터를 구성할 수도 있습니다.
- 브라우저에서 관리 콘솔을 엽니다.
-
구성
하위 시스템 로깅 을 선택합니다. - Configuration(구성) 을 선택한 다음 View(보기 )를 클릭합니다.
- Formatter를 선택한 다음 Custom Formatter(사용자 지정 형식) 옵션을 선택합니다.