로깅 및 추적

제품에는 제품이 작성하는 메시지를 처리하고 FFDC(First Failure Data Capture) 서비스를 제공하는 통합 로깅 컴포넌트가 포함되어 있습니다.

또한 로깅 컴포넌트는 System.out, System.err, java.util.logging 및 OSGi 로깅에 작성되는 메시지를 캡처합니다. 로깅 컴포넌트는 이 메시지의 처리를 제품이 작성한 기타 메시지와 통합합니다. 로깅 컴포넌트는 JVM 프로세스에 의해 직접 작성되는 메시지(예: -verbose:gc 출력)는 캡처할 수 없습니다.

하나의 서버에 대해 세 개의 기본 로그 파일이 있습니다.
  1. console.log - 이 파일은 JVM 프로세스에서 경로 재지정된 표준 출력 및 표준 오류 스트림을 포함합니다. 이 콘솔 출력은 사용자가 직접 이용하기 위해 작성됩니다. 로깅 컴포넌트는 기본 consoleLogLevel 구성을 사용하는 경우 표준 출력 스트림에 주요 이벤트를 쓰고 표준 오류 스트림에 오류를 씁니다. 또한 로깅 컴포넌트는 기본 copySystemStreams 구성을 사용하는 경우 System.out 스트림에 쓴 메시지를 표준 출력 스트림에 복사하고, System.err 스트림에 쓴 메시지를 표준 오류 스트림에 복사합니다. 표준 출력 및 표준 오류 스트림은 항상 JVM 프로세스에서 직접 쓰는 메시지를 포함합니다(예:  -verbose:gc 출력). 이 파일은 server start 명령이 사용되는 경우에만 작성되며 해당 위치는 LOG_DIR 환경 변수를 사용해서만 변경할 수 있습니다. 추가 정보는 명령행에서 Liberty 관리의 내용을 참조하십시오.
  2. messages.log - 이 파일은 로깅 컴포넌트에서 쓰거나 캡처한 모든 메시지를 포함합니다. 이 파일에 작성되는 모든 메시지에는 메시지를 작성한 스레드의 ID와 메시지 시간소인 등의 추가적인 정보가 포함되어 있습니다. 이 파일에는 프로세스에 의해 직접 작성되는 메시지는 포함되어 있지 않습니다.
  3. trace.log - 이 파일은 로깅 컴포넌트 및 추가 추적에서 쓰거나 캡처한 모든 메시지를 포함합니다. 이 파일은 추가적인 추적을 사용으로 설정하는 경우에만 작성됩니다. 이 파일에는 프로세스에 의해 직접 작성되는 메시지는 포함되어 있지 않습니다.

로깅 구성

로깅 컴포넌트는 서버 구성을 통해 제어할 수 있습니다. 로깅 구성의 기본 위치는 server.xml 파일에 있습니다. server.xml 파일이 처리되기 전에 발생하는 문제점을 진단하도록 추적을 구성해야 하는 경우도 있습니다. 이 경우 bootstrap.properties 파일에서 동등한 구성 특성을 지정할 수 있습니다. bootstrap.properties 파일과 server.xml 파일 모두에서 구성 특성이 지정되는 경우에는 server.xml 파일이 처리될 때까지 bootstrap.properties에 있는 값이 사용됩니다. 그런 다음 server.xml 파일에 있는 값이 사용됩니다. bootstrap.properties 파일과 server.xml 파일에서 동일한 구성 특성에 대해 서로 다른 값을 지정하지 마십시오.
표 1. Liberty 컴포넌트의 로깅 특성. 1열은 server.xml 파일에서 설정할 수 있는 속성을 포함합니다. 2열은 bootstrap.properties 파일에서 사용할 수 있는 동등 특성을 포함합니다. 3열은 각 로깅 특성의 설명을 제공합니다.
속성 동등 특성 설명
logDirectory
com.ibm.ws.logging
.log.directory
이 속성을 사용하여 모든 로그 파일에 대한 디렉토리를 설정할 수 있습니다(console.log 파일은 제외하고 FFDC는 포함함). 기본적으로, logDirectoryLOG_DIR 환경 변수로 설정됩니다. 기본 LOG_DIR 환경 변수 경로는 WLP_OUTPUT_DIR/serverName/logs입니다.
문제점 예방: logDirectory 속성 대신 LOG_DIR 환경 변수 또는 com.ibm.ws.logging.log.directory 특성을 사용하여 모든 메시지를 작성할 디렉토리를 구성하십시오. 그렇지 않으면 기본적으로 몇몇 메시지가 초기에 logs 디렉토리에서 작성된 후 나머지 메시지가 사용자의 구성에 따라 지정된 디렉토리에 작성됩니다. logDirectory 속성을 사용하여 서버가 실행 중인 동안 지정된 디렉토리에 로그를 동적으로 업데이트할 수 있습니다.

[17.0.0.1 and later]isoDateFormat

com.ibm.ws.logging.isoDateFormat
날짜 및 시간은 로케일 형식 또는 ISO-8601 형식을 사용합니다. 속성의 값이나 동등한 특성의 값으로 true 또는 false를 지정할 수 있습니다. 기본값은 false입니다.

true 값을 지정하는 경우에는 ISO-8601 형식이 messages.log 파일, trace.log 파일 및 FFDC 로그에서 사용됩니다. 형식은 yyyy-MM-dd'T'HH:mm:ss.SSSZ입니다.

false 값을 지정하는 경우에는 날짜 및 시간이 시스템의 기본 로케일 설정에 따라 형식화됩니다. 기본 로케일을 찾을 수 없는 경우, 형식은 dd/MMM/yyyy HH:mm:ss:SSS z입니다.

maxFileSize
com.ibm.ws.logging
.max.file.size
로그 파일이 롤링되기 전에 도달할 수 있는 최대 크기(MB)입니다. Liberty 런타임은 크기 기반 로그 롤링만 수행합니다. 이 속성을 사용하지 않도록 설정하려면 값을 0으로 설정하십시오. 최대 파일 크기는 추정치입니다.기본적으로 값은 20입니다.
참고: maxFileSizeconsole.log 파일에 적용되지 않습니다.
maxFiles
com.ibm.ws.logging
.max.files
적용된 최대 파일 크기가 존재하는 경우 이 설정은 보관되는 각 로그 파일의 수를 판별하는 데 사용됩니다. 이 설정은 특정 날짜에 발생한 예외를 요약하는 예외 로그 수에도 적용됩니다. 이 수가 10인 경우, 10개의 메시지 로그, 10개의 추적 로그, 10개의 예외 요약이 ffdc/ 디렉토리에 있을 수 있습니다. 기본적으로 값은 2입니다.
참고: maxFilesconsole.log 파일에 적용되지 않습니다.
consoleLogLevel
com.ibm.ws.logging
.console.log.level
이 필터는 콘솔로 이동하는 메시지의 세분성을 제어합니다. 올바른 값은 INFO, AUDIT, WARNING, ERROR, OFF입니다. 기본적으로 consoleLogLevelWLP_LOGGING_CONSOLE_LOGLEVEL 환경 변수(설정된 경우) 또는 AUDIT로 설정됩니다.
For distributed platforms참고: 이 값을 변경하기 전에, Developer Tools의 알려진 제한사항 주제의 "콘솔 로그 레벨 설정을 수정한 후에 Liberty 서버와 상호작용할 수 없음" 절에 있는 정보를 고려하십시오.
copySystemStreams
com.ibm.ws.logging.
copy.system.streams
true인 경우 System.outSystem.err 스트림에 작성되는 메시지가 console.log에 복사됩니다. false인 경우 해당 메시지는 구성된 로그(예: messages.log 또는 trace.log)에 작성되지만 console.log에 복사되지는 않습니다. 기본값은 true입니다.
messageFileName
com.ibm.ws.logging
.message.file.name
메시지 로그는 messages.log의 기본 이름을 갖습니다. 이 파일은 항상 존재하며 System.outSystem.err 외에 INFO와 기타(AUDIT, WARNING, ERROR, FAILURE) 메시지를 포함합니다. 이 로그에는 시간소인 및 발행 스레드 ID도 포함됩니다. 로그 파일이 롤오버되는 경우 이전 로그 파일의 이름은 messages_timestamp.log의 형식을 갖습니다.
suppressSensitiveTrace   서버 추적은 유형이 지정되지 않은 데이터(예: 네트워크 연결을 통해 수신된 바이트)를 추적할 때 민감한 데이터를 노출할 수 있습니다. 이 속성이 true로 설정되면 중요한 정보가 로그와 추적 파일에 공개될 가능성이 없어집니다. 기본값은 false입니다.
traceFileName
com.ibm.ws.logging
.trace.file.name
추가 또는 자세한 추적이 사용 가능한 경우에만 trace.log 파일이 작성됩니다. stdout는 특수 값으로 인식되어 원래 표준 출력 스트림으로 직접 추적하게 됩니다.
traceSpecification
com.ibm.ws.logging
.trace.specification
추적 문자열은 선택적으로 사용 가능한 추적에 사용됩니다. 기본값은 *=info입니다.
traceFormat
com.ibm.ws.logging
.trace.format
이 속성은 추적 로그의 형식을 제어합니다. Liberty의 기본 형식은 ENHANCED입니다. BASICADVANCED 형식을 WebSphere Application Server Traditional에서와 같이 사용할 수도 있습니다.
hideMessage
com.ibm.ws.logging.hideMessage
이 속성을 사용하여 console.logmessage.log 파일에서 숨길 메시지를 구성할 수 있습니다. 메시지가 숨겨지도록 구성된 경우 해당 메시지는 trace.log 파일로 경로 재지정됩니다.
For distributed platforms참고: 이 속성을 사용하기 전에 Developer Tools의 알려진 제한사항 주제의 hideMessage 속성을 사용하여 메시지를 억제하는 경우 서버의 시작을 인식할 수 없음 절에 제공된 정보를 고려하십시오.
[18.0.0.1 and later]messageSource [18.0.0.1 and later]
com.ibm.ws.logging.message.source
[18.0.0.1 and later]messages.log 파일로 라우팅되는 쉼표로 구분되는 소스 목록입니다. 이 특성은 messageFormat=json의 경우에만 적용됩니다. 올바른 값은 message, trace, accessLogffdc입니다. 기본적으로 messageSource는 환경 변수 WLP_LOGGING_MESSAGE_SOURCE(설정된 경우) 또는 message로 설정됩니다.
[18.0.0.1 and later]messageFormat [18.0.0.1 and later]
com.ibm.ws.logging.message.format
[18.0.0.1 and later]messages.log 파일의 필수 형식입니다. 올바른 값은 basic 또는 json 형식입니다. 기본적으로 messageFormat은 환경 변수 WLP_LOGGING_MESSAGE_FORMAT(설정된 경우) 또는 basic으로 설정됩니다.
[18.0.0.1 and later]consoleSource [18.0.0.1 and later]
com.ibm.ws.logging.console.source
[18.0.0.1 and later]콘솔로 라우팅되는 쉼표로 구분되는 소스 목록입니다. 이 특성은 consoleFormat=json의 경우에만 적용됩니다. 올바른 값은 message, trace, accessLogffdc입니다. 기본적으로 consoleSource는 환경 변수 WLP_LOGGING_CONSOLE_SOURCE(설정된 경우) 또는 message로 설정됩니다.
[18.0.0.1 and later]consoleFormat [18.0.0.1 and later]
com.ibm.ws.logging.console.format
[18.0.0.1 and later]콘솔의 필수 형식입니다. 올바른 값은 basic 또는 json 형식입니다. 기본적으로 consoleFormat은 환경 변수 WLP_LOGGING_CONSOLE_FORMAT(설정된 경우) 또는 basic으로 설정됩니다.
개발자 도구의 서버 구성 보기에서 로깅 및 추적을 선택하여 서버 구성 파일에서 로깅 특성을 설정할 수 있습니다. 또는 다음과 같이 서버 구성 파일에 로깅 요소를 추가합니다.
<logging traceSpecification="*=audit:com.myco.mypackage.*=finest"/>
로그 세부사항 레벨 스펙의 형식:
<component> = <level>

여기서 <component>는 로그 세부사항 레벨을 설정할 컴포넌트이고 <level>은 유효한 로거 레벨(off, fatal, severe, warning, audit, info, config, detail, fine, finer, finest, all) 중 하나입니다. 여러 로그 세부사항 레벨 스펙은 콜론(:)으로 구분하십시오.

주의: 지정된 로거의 경우 해당 로거에 적용되는 가장 구체적인 추적 스펙에 의해 레벨이 판별됩니다.
컴포넌트는 Java™ 패키지 및 클래스에 해당하거나 Java 패키지의 콜렉션에 해당합니다.지정된 컴포넌트에 의해 포함되는 모든 패키지의 모든 클래스를 포함하는 컴포넌트를 표시하려면 별표(*)를 와일드카드로 사용하십시오. 예:
*
제품 시스템 코드 및 고객 코드를 포함하여 애플리케이션 서버에서 실행 중인 모든 추적 가능 코드를 지정합니다.
com.ibm.ws.*
패키지 이름이 com.ibm.ws로 시작하는 모든 클래스를 지정합니다.
com.ibm.ws.classloader.JarClassLoader
JarClassLoader 클래스만 지정합니다.
표 2. 올바른 로깅 레벨. 다음 표에는 WebSphere Application Server 버전 6 이상에서 애플리케이션 서버에 대해 올바른 레벨이 나열됩니다.
버전 6 이상 로깅 레벨 컨텐츠/중요도
off 로깅이 꺼져 있습니다.
fatal 태스크를 계속할 수 없고 컴포넌트, 애플리케이션 및 서버가 작동할 수 없습니다.
severe 태스크를 계속할 수 없지만 컴포넌트, 애플리케이션 및 서버는 계속 작동할 수 있습니다. 이 레벨은 임박한 복구 불가능한 오류도 표시합니다.
warning 잠재적 오류 또는 임박한 오류입니다. 이 레벨은 진행형 장애(예: 자원의 잠재적 누수)도 표시할 수 있습니다.
audit 서버 상태 또는 자원에 영향을 미치는 중요한 이벤트
info 전체 태스크 진행상태를 요약하는 일반 정보
config 구성 변경 또는 상태
detail 하위 태스크 진행상태에 대해 자세히 설명하는 일반 정보
fine 추적 정보 - 일반 추적 + 메소드 입력, 종료 및 리턴값
finer 추적 정보 - 자세한 추적
finest 추적 정보 - 문제점을 디버그하는 데 필요한 모든 세부사항이 포함된 자세한 추적
all 모든 이벤트가 로깅됩니다. 사용자 정의 레벨을 작성하는 경우 all은 해당 레벨을 포함하며 finest보다 자세한 추적을 제공할 수 있습니다.
console.log 파일은 다른 로그 파일과 동일한 관리 레벨을 갖지 않습니다. 변경할 수 있는 특성은 consoleLogLevel, consoleSourceconsoleFormat뿐입니다. console.log 파일의 크기 증가에 관심이 있는 경우, console.log 파일을 사용 안함으로 설정하고 대신 메시지 로그 파일을 사용할 수 있습니다. 다른 형식을 갖는 동일한 데이터가 메시지 로그 파일에 기록되며, maxFileSizemaxFiles 속성을 사용하여 메시지 로그 파일의 크기와 수를 제어할 수 있습니다. 예를 들어, 다음 bootstrap.properties 파일은 하나의 비어 있는 console.log 파일과 최대 세 개의 롤링 1MB loggingMessages.log 파일을 생성합니다. 하지만 기본 JVM으로부터의 메시지는 여전히 console.log에 작성될 수 있습니다. bootstrap.properties 파일에서의 설정은 메시지 로그 파일이 작성되기 전에 적용되므로 메시지 로그 파일은 기본값인 messages.log가 아니라 loggingMessages.log로 초기에 작성됩니다.
   com.ibm.ws.logging.max.file.size=1
   com.ibm.ws.logging.max.files=3
   com.ibm.ws.logging.console.log.level=OFF
   com.ibm.ws.logging.message.file.name=loggingMessages.log
서버가 다시 시작될 때 console.log 파일이 재설정됩니다.
참고: 모든 운영 체제에서 로그는 기본 시스템 인코딩으로 작성됩니다.
  • For z/OS platformsz/OS® 시스템에서, console.log 파일은 기본 코드 페이지를 사용하고, 다른 모든 로그 파일은 ISO8859-1 인코딩을 사용하며 해당 인코딩을 가진 텍스트 파일로 태그가 지정됩니다. USS(z/OS UNIX System Services) 자동 코드 페이지 변환 기능이 활성화된 경우, 표준 편집기 및 텍스트 유틸리티를 사용하여 볼 수 있습니다. ISO8859-1로 인코드된 로그 파일.
  • For Windows platformsWindows 시스템에는 OEM 코드 페이지와 ANSI 코드 페이지라는 두 가지 유형의 인코딩이 있습니다. OEM 코드 페이지는 콘솔 출력에 사용되며, ANSI 코드 페이지는 파일을 읽고 쓰는 데 사용됩니다. console.log 파일은 OEM 코드 페이지를 사용하고 기타 모든 로그는 ANSI 코드 페이지를 사용합니다.
  • For distributed platforms다른 모든 운영 체제에서 모든 로그 파일은 기본 인코딩을 사용합니다.
[18.0.0.1 and later]다음 샘플은 JSON 로깅의 예제 구성을 설명합니다.
  • server.xml 파일에서 messages.log를 JSON 형식으로 설정:
    <logging messageFormat="json" messageSource="message,trace,accessLog,ffdc" />
  • server.env 파일에서 콘솔을 JSON 형식으로 설정:
    WLP_LOGGING_CONSOLE_FORMAT=json
    WLP_LOGGING_CONSOLE_LOGLEVEL=info
    WLP_LOGGING_CONSOLE_SOURCE=message,trace,accessLog,ffdc
  • bootstrap.properties 파일에서 콘솔을 JSON 형식으로 설정:
    com.ibm.ws.logging.console.format=json
    com.ibm.ws.logging.console.log.level=info
    com.ibm.ws.logging.console.source=message,trace,accessLog,ffdc

주제의 유형을 표시하는 아이콘 참조 주제

파일 이름: rwlp_logging.html