로깅 및 추적에 대한 특성 설명

pureQuery는 로그 파일에 전송된 정보의 유형을 제어하는 구성 가능한 심각도 레벨과 함께 로깅 및 추적 기능을 제공합니다.

다음 특성을 설정할 수 있습니다.

pdq.traceFile
로그 정보가 기록되는 실제 파일을 지정합니다. pureQuery 사용 가능 애플리케이션이 실행되는 디렉토리에 상대적인 경로 또는 절대 경로를 사용할 수 있습니다.

Java 애플리케이션에 대한 파일이 있는 경우 pureQuery는 새 로그 항목에 대한 파일을 사용하기 전에 파일의 컨텐츠를 삭제합니다.

traceFile 특성은 전역 pdq.properties 파일에만 지정할 수 있습니다.

pdq.traceLevel
로그 파일에 작성할 세부사항의 레벨을 지정합니다. 최소 세부사항에서 In order 최대 세부사항 순서로 레벨은 다음과 같습니다.
  • OFF
  • SEVERE
  • WARNING
  • INFO
  • CONFIG
  • FINE
  • FINER
  • FINEST
  • ALL
기본 레벨은 OFF입니다.

pureQuery 컴포넌트 로깅의 추적 레벨을 지정할 수 있습니다. pureQuery 컴포넌트 추적 정보 로깅에 대한 정보는 pureQuery Runtime 컴포넌트 특성의 추적 레벨 지정의 내용을 참조하십시오.

traceLevel 특성은 전역 pdq.properties 파일에만 지정할 수 있습니다.

pdq.traceBufferRowCount
메모리에 버퍼 지정되는 최대 로그 레코드 수를 지정합니다. traceBufferRowCount 특성의 값은 음수가 아닌 정수일 수 있습니다. 기본값 0은 로그 레코드가 메모리에 버퍼 지정되지 않음을 지정합니다.

traceBufferRowCount 특성이 사용 가능한 경우 pureQuery Runtime 특성 dumpLogsOnSqlCodes도 파일에 로그 레코드를 기록하도록 지정되어야 합니다. dumpLogsOnSqlCodes 특성의 값은 SQL 오류 코드의 목록입니다. 나열된 오류가 발생하면 메모리에 버퍼 지정되는 로그 레코드가 로그 파일에 기록됩니다. 로그 파일은 traceFile 특성이 지정합니다. 지정된 오류 코드가 발견되지 않거나 특성 dumpLogsOnSqlCodes가 지정되지 않고 최대 메모리 양에 도달하는 경우 새 레코드가 메모리에 버퍼 지정되면 가장 오래된 레코드가 메모리에서 삭제됩니다.

특성 dumpLogsExcludingSqlCodes는 로그 파일에 로그 레코드를 기록하도록 트리거되지 않는 SQL 오류 코드와 함께 지정될 수 있습니다.

다음 예는 최대 8000개의 로그 레코드를 메모리에 버퍼링하고 로그 레코드를 로그 파일에 기록하도록 하는 pureQuery Runtime SQL 오류 기본 목록의 SQL 오류를 지정합니다.
pdq.traceBufferRowCount=8000
pdq.dumpLogsOnSqlCodes=default

traceBufferRowCount 옵션은 독립형 pureQuery Runtime 애플리케이션에 사용하도록 디자인됩니다. 이는 WebSphere® 링 버퍼와 별개입니다.

pdq.dumpLogsOnSqlCodes
pureQuery Runtime이 메모리에서 로그 레코드를 버퍼하는 경우 이 특성은 로그 파일에 레코드를 기록하도록 트리거하는 SQL 오류 코드를 지정합니다.
이 특성의 값은 파이프 문자(|)로 구분된 SQL 오류 코드의 목록입니다. 목록은 키워드 기본값을 포함할 수 있습니다. 키워드 기본값은 pureQuery Runtime이 버퍼 지정 로그 레코드를 로그 파일에 기록하도록 트리거하는 데 사용하는 SQL 오류 코드의 목록을 지정합니다. SQL 오류 코드를 지정할 때 선행 대시를 포함시켜야 합니다. 다음 예에는 버퍼 지정 로그 레코드를 로그 파일에 기록하도록 트리거하는 두 SQL 오류 코드가 나열됩니다.
pdq.traceBufferRowCount=8000
pdq.dumpLogsOnSqlCodes=-805|-810

pureQuery Runtime은 SQL 오류 코드 -805 또는 -810이 발생하거나 traceBufferRowCount 특성으로 지정된 레코드 수가 메모리에서 버퍼 지정되는 경우 메모리에 있는 로그 레코드를 로그 파일에 기록합니다.

다음 예에는 버퍼 지정 로그 레코드를 로그 파일에 기록하도록 트리거하는 오류 코드로서 SQL 오류 코드 -3476 및 SQL 오류 코드 의 기본값 목록이 나열됩니다.
pdq.traceBufferRowCount=8000
pdq.dumpLogsOnSqlCodes=default|-3476

키워드 기본값을 사용하는 경우 버퍼 지정 로그 레코드를 로그 파일에 기록하도록 트리거하지 않는 특정 SQL 오류 코드 dumpLogsExcludingSqlCodes를 지정할 수 있습니다. pureQuery Runtime 기본 SQL 오류 코드의 목록은 로깅에 사용되는 pureQuery Runtime 기본 SQL 오류 코드 목록의 내용을 참조하십시오.

pdq.dumpLogsExcludingSqlCodes
pureQuery Runtime이 메모리에서 로그 레코드를 버퍼하는 경우 이 특성은 버퍼 지정 로그 레코드를 로그 파일에 기록하도록 트리거하지 않는 SQL 오류 코드를 지정합니다. dumpLogsOnSqlCodes 특성은 버퍼 지정 로그 레코드를 로그 파일에 기록하도록 트리거하는 SQL 오류 코드를 지정합니다. 이 특성의 값은 파이프 문자(|)로 구분된 SQL 오류 코드의 목록입니다. SQL 오류 코드를 지정할 때 SQL 오류 코드의 부호가 중요합니다(예를 들어, 805와 -805는 다른 오류 코드임). 기본값 키워드를 dumpLogsOnSqlCodes와 함께 지정할 때 이 특성을 사용합니다.

다음 예에서 메모리에서의 로그 레코드 버퍼링은 최대 8000개의 레코드를 처리할 수 있습니다. pureQuery Runtime은 기본 목록에 있는 SQL 오류 코드 또는 오류 코드 -3476이 발견되면 로그 파일에 버퍼 지정 로그 레코드를 기록합니다. SQL 오류 코드의 기본 목록은 오류 코드 -805를 포함합니다. dumpLogsExcludingSqlCodes 특성은 SQL 오류 코드 -805가 버퍼링된 로그 레코드를 로그 파일에 쓰도록 트리거하지 않습니다.

pdq.traceBufferRowCount=8000
pdq.dumpLogsOnSqlCodes=default|-3476
pdq.dumpLogsExcludingSqlCodes=-805

Java 애플리케이션 사용법 참고

pureQuery Runtime은 java.util.logging Framework를 사용합니다. Framework 내에서 pureQuery Runtime은 해당 상위 로거의 이름을 com.ibm.pdq.logger로 지정합니다. Java 로깅 API 규칙 및 도구를 사용하여 사용자 및 사용자 애플리케이션은 pureQuery 로그 메시지가 com.ibm.pdq에 전달되도록 해당 로거의 로그 레벨 및 로그 파일을 설정할 수 있습니다.

다수의 애플리케이션 서버가 java.util.logging Framework 아래에서 실행되는 로거를 구성하기 위한 관리 도구를 제공합니다. 예를 들어, WebSphere Application Server를 사용하면 com.ibm.pdq 로거를 구성하여 pureQuery 로깅 및 추적을 제어할 수 있습니다. 애플리케이션 서버 도구 사용은 pureQuery Runtime 특성으로 pureQuery 로깅을 구성하기 위한 대안입니다. pureQuery는 com.ibm.pdq 로그 프로그램 레벨이 pureQuery pdq.traceLevel 특성에 지정된 레벨보다 높고 com.ibm.pdq 로그 프로그램 레벨이 INFO보다 높은 경우에 com.ibm.pdq 로그 프로그램 레벨을 사용합니다. WebSphere Application Server 통합 솔루션 콘솔에서 문제점 해결 > 로그 및 추적을 선택하여 com.ibm.pdq 로거 레벨을 설정할 수 있습니다.

com.ibm.pdq 로그 프로그램 추적 레벨이 INFO보다 포괄적인 레벨로 설정되었고 pureQuery 특성이 com.ibm.pdq 로그 프로그램 추적 레벨보다 포괄적인 레벨을 지정하지 않는 경우, pureQuery는 com.ibm.pdq 로그 프로그램의 레벨을 상속합니다.

pureQuery 애플리케이션에 WebSphere Application Server를 사용할 계획인 경우, WebSphere Application Server에 대한 로그에 pureQuery 로그 항목을 표시하려면 INFO보다 높은 레벨을 설정해야 합니다.

pureQuery Runtime은 로깅을 JDBC 드라이버 로그와 명시적으로 통합하지 않습니다. 하지만 Java 로깅 API를 사용하여 로그하는 JDBC 드라이버는 로그 프레임워크 통합에 참여할 수 있습니다. 이는 두 JDBC 드라이버 및 pureQuery Runtime 모두가 WebSphere 추적에 로그하도록 구성되는 경우 pureQuery 및 JDBC 드라이버 로그 항목이 동일한 로그 파일에서 인터리브됨을 의미합니다.

getJccSpecialRegisterProperties() 메소드에 대한 호출의 결과 로깅

애플리케이션이 IBM® Data Server Driver for JDBC and SQLJ를 사용하여 지원되는 DB2® 데이터베이스에 연결하고 Connection 오브젝트에 대해 getJccSpecialRegisterProperties() 메소드를 호출하는 경우 pureQuery는 오브젝트에 대해 해당 메소드를 처음 호출한 결과를 로그할 수 있습니다. pureQuery가 로그에 기록하는 메시지에는 드라이버가 데이터베이스에 대해 지원하는 특수 레지스터에 대한 널(NULL)이 아닌 모든 값이 나열됩니다.

로그에서 이 메시지를 확인하려면 추적 레벨을 FINE으로 설정하십시오.

DB2 CLI 및 IBM Data Server Driver 사용법 참고

DB2 CLI(Call Level Interface) 또는 IBM Data Server Driver를 pureQuery 런타임에 사용하는 경우 pureQuery Runtime 특성을 구성 키워드로 사용할 수 있습니다.

구성 파일 db2cli.ini 또는 dsdriver.cfg의 두 키를 설정할 수 있습니다.

IBM CLI 키워드 구문
traceFile = path-to-logfile

CLI 애플리케이션이 실행하는 디렉토리에 대한 절대 경로나 상대 경로를 사용할 수 있습니다. 파일이 존재하면 새 로그 메시지가 파일의 기존 컨텐츠에 추가됩니다.

traceLevel = path-to-logfile
IBM Data Server Driver 구성 구문
<parameter name="traceFile" value="path-to-logfile" />

CLI 애플리케이션이 실행하는 디렉토리에 대한 절대 경로나 상대 경로를 사용할 수 있습니다. 파일이 존재하면 새 로그 메시지가 파일의 기존 컨텐츠에 추가됩니다.

<parameter name="traceLevel" value="path-to-logfile" />
.NET 연결 문자열 키워드에 대한 해당 IBM Data Server Provider
N/A

다음 라인은 db2cli.ini 파일에서 traceFile을 /user/CLIOPTtraces.log로 설정하고 traceLevel을 INFO로 설정합니다.

traceFile=/user/CLIOPTtraces.log
traceLevel=INFO

피드백