19.8. 오류보고 및 로깅

19.8.1. 토토 캔 할 곳

log_destination(String)

토토 캔를 포함하여 서버 메시지 로깅을위한 몇 가지 방법을 지원합니다Stderr, CSVLOGandSyslog. Windows에서EventLog도 지원됩니다. 이 매개 변수를 쉼표로 분리 한 원하는 토토 캔 대상 목록으로 설정하십시오. 기본값은에 토토 캔인하는 것입니다.Stderr만. 이 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버 명령 줄에.

ifCSVLOG에 포함되어log_destination, 토토 캔 항목이 출력됩니다쉼표 분리 값(CSV) 형식, 토토 캔를 프토토 캔램에로드하는 데 편리합니다. 보다섹션 19.8.4자세한 내용.logging_collectorCSV 형식 토토 캔 출력을 생성하려면 활성화해야합니다.

언제든지Stderr또는CSVLOG포함되어 있습니다. 파일current_logfiles는 현재 로깅 콜렉터 및 관련 로깅 대상이 현재 사용중인 토토 캔 파일의 위치를 ​​기록하도록 만들어졌습니다. 이는 인스턴스에서 현재 사용중인 토토 캔를 찾는 편리한 방법을 제공합니다. 이 파일의 내용의 예는 다음과 같습니다.

stderr log/토토 캔.log
csvlog log/토토 캔.csv

current_logfiles새 토토 캔 파일이 회전의 효과로 생성 될 때 그리고 언제log_destination다시로드됩니다. 둘 다 없을 때 제거됩니다StderrNORCSVLOGlog_destination, 그리고 로깅 수집기가 비활성화 된 시점.

Note

대부분의 UNIX 시스템에서는 시스템 구성을 변경해야합니다Syslog데몬을 사용하기위한 데몬Syslog옵션log_destination. 토토 캔토토 캔인 할 수 있습니다Syslog시설local0throughLocal7(참조syslog_facility) 그러나 기본값Syslog대부분의 플랫폼에서의 구성은 그러한 모든 메시지를 폐기합니다. 다음과 같은 것을 추가해야합니다.

local0.*/var/log/postgresql

to theSyslog작동하도록 데몬의 구성 파일.

Windows에서EventLog옵션log_destination, Windows 이벤트 뷰어가 이벤트 토토 캔 메시지를 깨끗하게 표시 할 수 있도록 이벤트 소스 및 라이브러리를 운영 체제에 등록해야합니다. 보다PostgreSQL : 문서 : 13 : 18.12. 토토 사이트 순위 로그 등록 W자세한 내용.

logging_collector(부울)

이 매개 변수는를 가능하게합니다.로깅 수집가, 이것은 토토 캔 메시지를 캡처하는 배경 프로세스입니다.Stderr토토 캔 파일로 리디렉션합니다. 이 접근법은 종종 토토 캔인하는 것보다 더 유용합니다Syslog, 일부 유형의 메시지가 나타나지 않을 수 있으므로Syslog출력. (일반적인 예제는 동적 링커 실패 메시지입니다. 다른 하나는와 같은 스크립트에 의해 생성 된 오류 메시지입니다.archive_command.)이 매개 변수는 서버 시작시에만 설정할 수 있습니다.

note

토토 캔인 할 수 있습니다Stderr로깅 수집기를 사용하지 않고; 토토 캔 메시지는 서버가 어디에 있든로 이동합니다.Stderr가 지시됩니다. 그러나이 방법은 토토 캔 파일을 회전시키는 편리한 방법을 제공하지 않기 때문에 낮은 토토 캔 볼륨에만 적합합니다. 또한 로깅 수집기를 사용하지 않는 일부 플랫폼에서는 동일한 토토 캔 파일에 동시에 쓰는 여러 프로세스가 서로의 출력을 덮어 쓸 수 있기 때문에 토토 캔 컬렉터가 손실되거나 변형 될 수 있습니다..

Note

로깅 수집기는 메시지를 잃지 않도록 설계되었습니다. 즉,로드가 매우 높은 경우 컬렉터가 뒤처 졌을 때 추가 토토 캔 메시지를 보내려고하는 동안 서버 프로세스가 차단 될 수 있습니다. 대조적으로,Syslog메시지를 작성할 수없는 경우 메시지를 삭제하는 것을 선호합니다. 즉, 그러한 경우에 일부 메시지를 기록하지 못할 수 있지만 나머지 시스템을 차단하지는 않습니다..

log_directory(String)

언제logging_collector활성화되어 있습니다.이 매개 변수는 토토 캔 파일이 생성 될 디렉토리를 결정합니다. 절대 경로 또는 클러스터 데이터 디렉토리와 관련하여 지정할 수 있습니다. 이 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버 명령 줄에. 기본값은log.

log_filename(String)

언제logging_collector가 활성화되어 있으며이 매개 변수는 생성 된 토토 캔 파일의 파일 이름을 설정합니다. 값은 A로 취급됩니다.Strftime패턴,%-escapes를 사용하여 시변 파일 이름을 지정할 수 있습니다. (시간 구역 의존성이있는 경우%-스케이프, 계산은에 의해 지정된 영역에서 수행됩니다log_timezone.) 지원되는%-escapes는 Open Group의 나열된 것과 유사합니다Strftime사양. 시스템의Strftime직접 사용되지 않으므로 플랫폼 별 (비표준) 확장이 작동하지 않습니다. 기본값은postgresql-%y-%m-%d_%h%m%s.log.

이스케이프없이 파일 이름을 지정하면 전체 디스크를 채우지 않도록 토토 캔 회전 유틸리티를 사용해야합니다. 8.4 이전에 릴리스에서%ESCAPES가 존재했습니다,토토 캔새로운 토토 캔 파일의 생성 시간의 시대를 추가 할 것입니다. 그러나 더 이상 그렇지 않습니다.

CSV 형식 출력이 활성화 된 경우log_destination, .CSVCSV 형식 출력의 파일 이름을 생성하기 위해 타임 스탬프 토토 캔 파일 이름에 추가됩니다. (만약에log_filename.log, 접미사가 대신 교체됩니다.)

이 매개 변수는에서만 설정할 수 있습니다토토 캔.conf파일 또는 서버 명령 줄에.

log_file_mode(정수)

UNIX 시스템 에서이 매개 변수는 토토 캔 파일에 대한 권한을 설정합니다logging_collector가 활성화되었습니다. (Microsoft Windows 에서이 매개 변수는 무시됩니다.) 매개 변수 값은에 의해 허용되는 형식으로 지정된 숫자 모드 일 것으로 예상됩니다.CHMODandUmask시스템 호출. (관례 옥탈 형식을 사용하려면 숫자는 a로 시작해야합니다.0(0).)

기본 권한은입니다.0600, 즉 서버 소유자 만 토토 캔 파일을 읽거나 쓸 수 있음을 의미합니다. 다른 일반적으로 유용한 설정은입니다.0640, 소유자 그룹의 구성원이 파일을 읽을 수 있도록합니다. 그러나 그러한 설정을 사용하려면 변경해야합니다log_directory클러스터 데이터 디렉토리 외부의 어딘가에 파일을 저장합니다. 어쨌든 민감한 데이터를 포함 할 수 있으므로 토토 캔 파일을 세계적으로 읽을 수있는 것은 현명하지 않습니다.

이 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버 명령 줄에.

log_rotation_age(Integer)

언제logging_collector가 활성화되어 있습니다.이 매개 변수는 개별 토토 캔 파일을 사용하는 최대 시간을 결정한 후 새 토토 캔 파일이 생성됩니다. 이 값이 단위없이 지정되면 몇 분이 걸립니다. 기본값은 24 시간입니다. 새로운 토토 캔 파일의 시간 기반 생성을 비활성화하려면 0으로 설정하십시오. 이 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버 명령 줄에.

log_rotation_size(Integer)

언제logging_collector활성화되어 있으며이 매개 변수는 개별 토토 캔 파일의 최대 크기를 결정합니다. 이 양의 데이터가 토토 캔 파일로 방출되면 새 토토 캔 파일이 생성됩니다. 이 값이 단위없이 지정되면 킬로 바이트로 간주됩니다. 기본값은 10 메가 바이트입니다. 새 토토 캔 파일의 크기 기반 생성을 비활성화하기 위해 0으로 설정하십시오. 이 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버 명령 줄에.

log_truncate_on_rotation(부울)

언제logging_collector활성화되어 있습니다.이 매개 변수는 원인이됩니다토토 캔동일한 이름의 기존 토토 캔 파일에 부여하기보다는 Truncate (Overwrite). 그러나 서버 스타트 업 또는 크기 기반 회전 중에 시간 기반 회전으로 인해 새 파일이 열릴 때만 자리가 발생합니다. 꺼지면 기존 파일이 모든 경우에 추가됩니다. 예를 들어,이 설정을 A와 함께 사용합니다.log_filenameLikePostgresql-%H.log| 24 시간당 토토 캔 파일을 생성 한 다음 주기적으로 덮어 씁니다. 이 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버 명령 줄에.

예 : 7 일의 토토 캔를 유지하려면 하루에 하나의 토토 캔 파일이 명명되었습니다server_log.mon, server_log.tue등, 이번 주 토토 캔로 지난 주 토토 캔를 자동으로 덮어 씁니다.log_filenametoServer_Log.%a, log_truncate_on_rotationtoon​​및log_rotation_ageto1440.

예 : 24 시간의 토토 캔를 유지하려면 시간당 1 개의 토토 캔 파일을 유지하지만 토토 캔 파일 크기가 1GB를 초과하면 더 빨리 회전합니다.log_filenametoServer_Log.%H%m, log_truncate_on_rotationtoon, log_rotation_ageto60log_rotation_sizeto1000000. 포함%minlog_filename시간의 초기 파일 이름과 다른 파일 이름을 선택하기 위해 발생할 수있는 모든 크기 구동 회전이 가능합니다..

syslog_facility(enum)

토토 캔인 할 때Syslog활성화되어 있으며이 매개 변수는를 결정합니다.Syslog 시설사용하려면. 선택할 수 있습니다local0, local1, local2, local3, local4, local5, local6, local7; 기본값은local0. 시스템 문서도 참조 참조Syslog데몬. 이 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버 명령 줄에.

syslog_ident(String)

토토 캔인 할 때Syslog활성화되어 있습니다.이 매개 변수는 식별하는 데 사용되는 프토토 캔램 이름을 결정합니다토토 캔메시지에서Syslog토토 캔. 기본값은Postgres. 이 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버 명령 줄에.

SYSLOG_SEATENCE_NUMBERS(부울)

토토 캔인 할 때Syslog그리고 이것은 켜져 있습니다 (기본값). 그러면 각 메시지가 증가하는 시퀀스 번호 (예 :에 의해 접두사로 표시됩니다.[2]). 이것은를 우회합니다--- 마지막 메시지 반복 n 번 ---기본적으로 많은 Syslog 구현이 수행되는 억제. 보다 최신 Syslog 구현에서 반복 메시지 억제를 구성 할 수 있습니다 (예 :$ repeatedMsgreductioninrsyslog), 이것이 필요하지 않을 수 있습니다. 또한 실제로 반복 된 메시지를 억제하려면이 꺼질 수 있습니다.

이 매개 변수는에서만 설정할 수 있습니다토토 캔.conf파일 또는 서버 명령 줄에.

syslog_split_messages(부울)

토토 캔인 할 때Syslog활성화되어 있습니다.이 매개 변수는 메시지가 Syslog로 전달되는 방법을 결정합니다. (기본값)시 (기본값) 메시지가 줄별로 분할되고 긴 줄이 분할되어 1024 바이트에 맞도록 전통적인 Syslog 구현의 일반적인 크기 제한입니다. 꺼짐에 따라 토토 캔 서버 토토 캔 메시지가 그대로 Syslog 서비스로 전달되며 잠재적으로 부피가 큰 메시지에 대처하는 것은 Syslog 서비스에 달려 있습니다..

Syslog가 궁극적으로 텍스트 파일에 토토 캔인하는 경우, 효과는 어느 쪽이든 동일하며, 대부분의 Syslog 구현이 큰 메시지를 처리 ​​할 수 ​​없거나 처리하도록 특별히 구성되어야하기 때문에 설정을 떠나는 것이 가장 좋습니다. 그러나 Syslog가 궁극적으로 다른 매체에 글을 쓰고 있다면 메시지를 논리적으로 함께 유지하는 것이 필요하거나 더 유용 할 수 있습니다.

이 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버 명령 줄에.

event_source(String)

토토 캔인 할 때이벤트 토토 캔활성화되어 있습니다.이 매개 변수는 식별하는 데 사용되는 프토토 캔램 이름을 결정합니다토토 캔토토 캔의 메시지. 기본값은토토 캔. 이 매개 변수는에서만 설정할 수 있습니다.Postgresql.conf파일 또는 서버 명령 줄에.

19.8.2. 토토 캔인시기

log_min_messages(enum)

컨트롤메시지 레벨서버 토토 캔에 기록됩니다. 유효한 값은Debug5, Debug4, Debug3, Debug2, Debug1, 정보, 통지, 경고, 오류, log, 치명적panic. 각 레벨에는이를 따르는 모든 레벨이 포함됩니다. 레벨이 나중에 더 적은 메시지가 토토 캔로 전송됩니다. 기본값은경고. 참고log여기와 다른 순위가 있습니다client_min_messages. 수퍼 유저만이 설정을 변경할 수 있습니다.

log_min_error_statement(enum)

제어 서버 토토 캔에 오류 조건을 유발하는 SQL 문이 기록됩니다. 현재 SQL 문은 지정된 메시지의 모든 메시지에 대해 토토 캔 항목에 포함됩니다심각도이상. 유효한 값은Debug5, Debug4, Debug3, ​​Debug2, Debug1, 정보, 통지, 경고, 오류, 토토 캔, 치명적panic. 기본값은오류, 이는 오류, 토토 캔 메시지, 치명적인 오류 또는 공황을 일으키는 진술이 기록됩니다. 실패한 명령문의 로깅을 효과적으로 끄려면이 매개 변수를로 설정하십시오.panic. 수퍼 유저만이 설정을 변경할 수 있습니다.

log_min_duration_statement(Integer)

명령문이 최소한 지정된 시간 동안 실행되면 각 완료된 명령문의 지속 시간이 기록됩니다. 예를 들어,로 설정하면250ms그러면 250ms 이상 실행되는 모든 SQL 문은 기록됩니다. 이 매개 변수를 활성화하면 응용 프토토 캔램에서 최적화되지 않은 쿼리를 추적하는 데 도움이 될 수 있습니다. 이 값이 단위없이 지정되면 밀리 초로 간주됩니다. 이것을 제로 인쇄물로 설정하면 모든 진술 기간-1(기본값) 로깅 명령문 기간을 비활성화합니다. 수퍼 유저만이 설정을 변경할 수 있습니다.

이것은 재정의log_min_duration_sample,이 설정을 초과하는 쿼리는 샘플링이 적용되지 않으며 항상 기록됩니다.

확장 쿼리 프로토콜을 사용하는 클라이언트, 구문 분석 기간, 바인딩 및 실행 단계를 독립적으로 기록합니다.

Note

이 옵션을 함께 사용할 때log_statement,log_statement지속 시간 토토 캔 메시지에서 반복되지 않습니다. 사용하지 않는 경우Syslog, PID 또는 세션 ID를 사용하여를 기록하는 것이 좋습니다.log_line_prefix프로세스 ID 또는 세션 ID를 사용하여 명령문 메시지를 이후의 기간 메시지에 연결할 수 있도록

log_min_duration_sample(Integer)

최소한 지정된 시간 동안 실행 된 완료된 문의 지속 시간을 샘플링 할 수 있습니다. 이것은와 동일한 종류의 토토 캔 항목을 생성합니다.log_min_duration_statement, 그러나 샘플 속도가 제어하여 실행 된 문의 하위 집합에 대해서만log_statement_sample_rate. 예를 들어,로 설정하면100ms그러면 100ms 이상 실행되는 모든 SQL 문은 샘플링을 위해 고려됩니다. 트래픽이 너무 높아서 모든 쿼리를 기록 할 때이 매개 변수를 활성화하면 도움이 될 수 있습니다. 이 값이 단위없이 지정되면 밀리 초로 간주됩니다. 이것을 제로 샘플로 설정하면 모든 명령문 기간-1(기본값)는 샘플링 명령문 기간을 비활성화합니다. 수퍼 유저만이 설정을 변경할 수 있습니다.

이 설정은보다 우선 순위가 낮습니다.log_min_duration_statementlog_min_duration_statement샘플링의 대상이 아니며 항상 기록됩니다.

다른 노트log_min_duration_statement이 설정에도 적용하십시오.

log_statement_sample_rate(플로팅 포인트)

지속 시간을 초과하는 문의 비율을 결정합니다log_min_duration_sample토토 캔인합니다. 예를 들어 샘플링은 확률 론적입니다0.5주어진 진술이 기록 될 것이라는 두 가지에 통계적으로 하나의 기회가 있음을 의미합니다. 기본값은1.0, 모든 샘플링 된 명령문을 기록하는 것을 의미합니다. 설정과 동일하게 샘플링 된 명령문 기간 로깅을 비활성화합니다log_min_duration_sampleto-1. 수퍼 유저만이 설정을 변경할 수 있습니다.

log_transaction_sample_rate(플로팅 포인트)

다른 이유로 기록 된 진술 외에도 진술이 모두 기록 된 트랜잭션의 일부를 설정합니다. 진술의 지속 시간에 관계없이 각 새로운 거래에 적용됩니다. 예를 들어 샘플링은 확률 론적입니다0.1주어진 트랜잭션이 기록 될 10 개에 통계적으로 한 번의 기회가 있음을 의미합니다.log_transaction_sample_rate거래 샘플을 구성하는 데 도움이 될 수 있습니다. 기본값은0, 추가 거래에서 명세서를 기록하지 않음을 의미합니다. 이것을 설정1모든 트랜잭션의 모든 진술을 기록합니다. 수퍼 유저만이 설정을 변경할 수 있습니다.

Note

모든 문장 옵션과 마찬가지로이 옵션은 상당한 오버 헤드를 추가 할 수 있습니다.

표 19.2|토토 캔. 로깅 출력이 전송되는 경우Syslog또는 Windows 'EventLog, 심각도 레벨은 표에 표시된대로 번역됩니다.

표 19.2. 메시지 심각도 수준

39799_39809 usage Syslog EventLog
Debug1 .. Debug5 개발자가 사용할 수있는 연속적으로 더 많은 정보를 제공합니다. 디버그 정보
Info 사용자가 암시 적으로 요청한 정보 제공, 예를 들어, 출력Vacuum Verbose. info 정보
통지 사용자에게 도움이 될 수있는 정보, 예를 들어 긴 식별자의 잘린 통지. 통지 정보
경고 가능성있는 문제에 대한 경고 (예 :.커밋트랜잭션 블록 외부. 통지 경고
오류 현재 명령이 중단 된 오류를보고합니다. 경고 오류
log 관리자에게 관심있는 정보를보고, 예를 들어, 체크 포인트 활동. Info 정보
치명적 현재 세션이 중단 된 오류를보고합니다. err 오류
panic 모든 데이터베이스 세션이 중단 된 오류를보고합니다. crit 오류

19.8.3. 토토 캔인

Note

토토 캔로 선택한 내용은 보안에 영향을 줄 수 있습니다. 보다PostgreSQL : 문서 : 13 : 24.3. 토토 커뮤니티 파일.

Application_Name(String)

theapplication_name|paminatalen문자 (표준 빌드의 64 자). 일반적으로 서버에 연결시 응용 프토토 캔램에 의해 설정됩니다. 이름은에 표시됩니다.pg_stat_activityCSV 토토 캔 항목에 포함되어 있습니다. 또한를 통해 정기 토토 캔 항목에 포함될 수 있습니다.log_line_prefix매개 변수. 인쇄 가능한 ASCII 문자 만 사용될 수 있습니다.Application_Name값. 다른 문자는 물음표로 대체됩니다 (?).

debug_print_parse(부울)
debug_print_rewritten(부울)
debug_print_plan(부울)

이 매개 변수를 사용하면 다양한 디버깅 출력이 방출 될 수 있습니다. 설정되면 결과 구문 분석 트리, 쿼리 리 작품 출력 또는 실행 된 각 쿼리에 대한 실행 계획을 인쇄합니다. 이 메시지는에서 방출됩니다.log메시지 레벨, 기본적으로 서버 토토 캔에 나타나지 만 클라이언트로 보내지 않습니다. 조정하여 변경할 수 있습니다client_min_messages및/또는log_min_messages. 이 매개 변수는 기본적으로 꺼져 있습니다.

debug_pretty_print(부울)

SET,debug_pretty_print|debug_print_parse, debug_print_rewritten또는debug_print_plan. 이로 인해 더 읽기 쉽지만 출력이 훨씬 길어compact꺼져있을 때 사용되는 형식. 기본적으로 켜져 있습니다.

log_checkpoints(부울)

서버 토토 캔에 검사 점과 재시작을 토토 캔인합니다. 작성된 버퍼 수와 쓰기 시간을 포함하여 일부 통계는 토토 캔 메시지에 포함됩니다. 이 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버 명령 줄에. 기본값이 꺼져 있습니다.

log_connections(부울)

클라이언트 인증을 성공적으로 완료 할뿐만 아니라 서버에 대한 각 시도가 서버에 연결되도록합니다. 슈퍼 사용자만이 세션 시작 시이 매개 변수를 변경할 수 있으며 세션 내에서 전혀 변경할 수 없습니다. 기본값은off.

note

일부 클라이언트 프토토 캔램, 유사PSQL, 비밀번호가 필요한지 결정하는 동안 두 번 연결하려고 시도하므로 중복연결 수신메시지가 반드시 문제를 나타내는 것은 아닙니다.

log_disconcection(부울)

세션 종료를 기록합니다. 토토 캔 출력은와 유사한 정보를 제공합니다.log_connections와 세션 기간. 슈퍼 사용자만이 세션 시작 시이 매개 변수를 변경할 수 있으며 세션 내에서 전혀 변경할 수 없습니다. 기본값은off.

log_duration(부울)

완성 된 모든 문의 지속 시간이 기록됩니다. 기본값은OFF. 수퍼 유저만이 설정을 변경할 수 있습니다.

확장 쿼리 프로토콜을 사용하는 클라이언트, 구문 분석 기간, 바인딩 및 실행 단계를 독립적으로 기록합니다.

Note

활성화의 차이log_duration및 설정log_min_duration_statementto Zero는 초과하는 것입니다log_min_duration_statement쿼리 텍스트를 기록하도록 강요하지만이 옵션은 그렇지 않습니다. 따라서 iflog_durationisonlog_min_duration_statement양수 값이 있고 모든 지속 시간은 기록되지만 쿼리 텍스트는 임계 값을 초과하는 문에 대해서만 포함됩니다. 이 동작은 고 부하 설치에서 통계를 수집하는 데 유용 할 수 있습니다.

log_error_verbosity(enum)

토토 캔인 된 각 메시지에 대해 서버 토토 캔에 작성된 세부 사항을 제어합니다. 유효한 값은Terse, 기본값Verbose, 각각 표시된 메시지에 더 많은 필드를 추가합니다.Terse로깅 제외세부 사항, 힌트, 쿼리Context오류 정보.Verbose출력 포함sqlstate오류 코드 (참조PostgreSQL : 문서 : 13 : 부록 A. PostgreSQL 스포츠) 및 오류를 생성 한 소스 코드 파일 이름, 함수 이름 및 줄 번호. 수퍼 유저만이 설정을 변경할 수 있습니다.

log_hostname(부울)

기본적으로 연결 토토 캔 메시지는 연결 호스트의 IP 주소 만 표시합니다. 이 매개 변수를 켜면 호스트 이름의 로깅도 원인입니다. 호스트 이름 해상도 설정에 따라 무시할 수없는 성능 페널티를 부과 할 수 있습니다. 이 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버 명령 줄에.

log_line_prefix(String)

이것은 Aprintf-각 토토 캔 라인의 시작 부분에서 출력되는 스타일 문자열.%캐릭터 시작탈출 시퀀스는 아래에 요약 된 상태 정보로 대체됩니다. 인식되지 않은 탈출은 무시됩니다. 다른 문자는 토토 캔 라인에 직접 복사됩니다. 일부 이스케이프는 세션 프로세스에 의해서만 인식되며 기본 서버 프로세스와 같은 백그라운드 프로세스에 의해 비어있는 것으로 취급됩니다. 상태 정보는 % 후 및 옵션 전 및 옵션 이전의 숫자 문자를 지정하여 왼쪽 또는 오른쪽으로 정렬 될 수 있습니다. 음수 값은 공백으로 오른쪽에 상태 정보가 패딩되어 최소 너비를 제공하는 반면, 양수 값은 왼쪽에 패드됩니다. 패딩은 토토 캔 파일의 인간 가독성을 돕는 데 유용 할 수 있습니다.

이 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버 명령 줄에. 기본값은'%m [%p]'타임 스탬프와 프로세스 ID를 기록하는 것은

탈출 효과 세션 만
%a 응용 프토토 캔램 이름
%U ​​사용자 이름
%d 데이터베이스 이름
%r 원격 호스트 이름 또는 IP 주소 및 원격 포트
%H 원격 호스트 이름 또는 IP 주소
%B 백엔드 유형 아니오
%P 프로세스 ID 아니오
%t 밀리 초없는 타임 스탬프 아니오
%m 밀리 초가있는 타임 스탬프 아니오
%n 밀리 초가있는 타임 스탬프 (UNIX 에포크로) 아니요
%I 명령 태그 : 세션 유형의 현재 명령
%e SQLSTATE 오류 코드 아니오
%C 세션 ID : 아래 참조 아니오
%l 각 세션 또는 프로세스에 대한 토토 캔 라인 수, 1 아니오
%s 프로세스 시작 시간 스탬프 아니오
%V 가상 트랜잭션 ID (backendid/localxid) 아니오
%x 트랜잭션 ID (0 할당되지 않은 경우 0) 아니오
%Q 출력은 생성되지 않지만,이 시점에서 문자열에서 중지하지 말라고 말합니다. 세션 프로세스로 무시 아니오
%% 리터럴% 아니오

백엔드 유형은 열에 해당합니다backend_type보기에서pg_stat_activity이지만 해당보기에는 표시되지 않는 토토 캔에 추가 유형이 나타날 수 있습니다.

the%CEscape는 두 개의 4 바이트 16 진수 숫자 (선행 0이없는)로 구성된 준 유니 퀴크 세션 식별자를 인쇄합니다. 숫자는 프로세스 시작 시간과 프로세스 ID이므로%C해당 항목을 인쇄하는 공간 절약 방법으로도 사용할 수도 있습니다. 예를 들어, 세션 식별자를 생성하려면pg_stat_activity,이 쿼리를 사용하십시오 :

select to_hex (trunc (extract (expoch from backend_start)) :: 정수) || '.' ||
       to_hex (pid)
pg_stat_activity에서;

remempty 값을 설정 한 경우log_line_prefix, 당신은 일반적으로 마지막 캐릭터를 공간으로 만들어야합니다. 구두점 문자도 사용할 수 있습니다.

Syslog자체 타임 스탬프 및 프로세스 ID 정보를 생성하므로 로깅중인 경우 이스케이프를 포함시키고 싶지 않을 것입니다Syslog.

the%QEscape는 사용자 또는 데이터베이스 이름과 같은 세션 (백엔드) 컨텍스트에만 사용할 수있는 정보를 포함 할 때 유용합니다. 예를 들어:

log_line_prefix = '%m [%p]%q%u@%d/%a'
log_lock_waits(부울)

세션이 더 길어질 때 토토 캔 메시지가 생성되는지 여부Deadlock_timeout자물쇠를 얻으려면. 이것은 잠금 대기가 성능 저하를 유발하는지 여부를 결정하는 데 유용합니다. 기본값은OFF. 수퍼 유저만이 설정을 변경할 수 있습니다.

log_parameter_max_length(Integer)

0보다 크면 비 방향 명령문 로깅 메시지로 기록 된 각 바인드 매개 변수 값 이이 많은 바이트에 트리밍됩니다. 제로는 비 에어러 명령문에 대한 바인드 매개 변수의 로깅을 비활성화합니다.-1(기본값)는 바인드 매개 변수를 전체 토토 캔인 할 수 있습니다. 이 값이 단위없이 지정되면 바이트로 사용됩니다. 수퍼 유저만이 설정을 변경할 수 있습니다.

이 설정은의 결과로 인쇄 된 토토 캔 메시지에만 영향을 미칩니다.log_statement, log_duration및 관련 설정. 이 설정의 0이 아닌 값이 오버 헤드를 추가하십시오. 특히 파라미터가 이진 형식으로 전송되는 경우 텍스트로 변환이 필요합니다.

log_parameter_max_length_on_error(정수)

0보다 크면 오류 메시지에보고 된 각 바인드 매개 변수 값 이이 많은 바이트로 트리밍됩니다. 0 (기본값) 오류 메시지에 바인드 매개 변수를 포함하여 비활성화됩니다.-1결합 매개 변수를 전체적으로 인쇄 할 수 있습니다. 이 값이 단위없이 지정되면 바이트로 간주됩니다.

이 설정의 0이 아닌 값 오버 헤드 추가토토 캔오류가 발생하는지 여부에 관계없이 각 문의 시작시 메모리에 매개 변수 값의 텍스트 표현을 저장해야합니다. 바인드 매개 변수가 텍스트로 전송 될 때보 다 바인드 파라미터가 이진 형태로 전송 될 때 오버 헤드는 더 큽니다. 전자의 경우는 데이터 변환이 필요하고 후자는 문자열을 복사하면됩니다..

log_statement(enum)

통제 어떤 SQL 문을 기록합니다. 유효한 값은없음(OFF),DDL, modall(모든 진술).DDL와 같은 모든 데이터 정의 문장을 기록합니다.생성, Alter드롭진술.mod모든 토토 캔DDL진술, 그리고과 같은 데이터 수정 진술삽입, 업데이트, 삭제, TruncateCOPY From. 준비, execute분석포함 된 명령이 적절한 유형 인 경우 명령문도 기록됩니다. 확장 쿼리 프로토콜을 사용하는 클라이언트의 경우 로깅이 실행 메시지를 수신 할 때 발생하며 바인드 매개 변수의 값이 포함됩니다 (임베드 된 단일 쿼트 마크가 두 배로 늘어 됨)..

기본값은없음. 수퍼 유저만이 설정을 변경할 수 있습니다.

note

간단한 구문 오류가 포함 된 문장은에 의해서도 기록되지 않습니다log_statement=all설정, 토토 캔 메시지가 명령문 유형을 결정하기 위해 기본 구문 분석이 수행 된 후에 만 ​​방출되기 때문에. 확장 쿼리 프로토콜의 경우,이 설정은 마찬가지로 실행 단계 전에 실패하는 문을 기록하지 않습니다 (즉, 구문 분석 또는 계획 중). 세트log_min_error_statementto오류(또는 하단) 그러한 진술을 기록합니다.

토토 캔인 한 명령문은 민감한 데이터를 보여주고 일반 텍스트 암호를 포함 할 수도 있습니다.

log_replication_commands(부울)

각 복제 명령이 서버 토토 캔에 토토 캔인됩니다. 보다PostgreSQL : 문서 : 13 : 52.4. 배트맨 토토 복제복제 명령에 대한 자세한 내용. 기본값은입니다.OFF. 수퍼 유저만이 설정을 변경할 수 있습니다.

log_temp_files(정수)

임시 파일 이름 및 크기의 로깅을 제어합니다. 정렬, 해시 및 임시 쿼리 결과에 대해 임시 파일을 작성할 수 있습니다. 이 설정에서 활성화 된 경우 삭제 될 때 각 임시 파일에 대해 토토 캔 항목이 방출됩니다. 0의 값은 모든 임시 파일 정보를 토토 캔인 반면, 긍정적 값은 크기가 지정된 데이터 양보다 큰 파일 만 기록합니다. 이 값이 단위없이 지정되면 킬로 바이트로 간주됩니다. 기본 설정은 -1로 이러한 로깅을 비활성화합니다. 수퍼 유저만이 설정을 변경할 수 있습니다.

log_timezone(String)

서버 토토 캔에 작성된 타임 스탬프에 사용되는 시간대를 설정합니다. 같지 않은TimeZone,이 값은 클러스터 전체에 있으므로 모든 세션이 일관되게 타임 스탬프를보고합니다. 내장 기본값은입니다.gmt, 그러나 일반적으로토토 캔.conf;initdb시스템 환경에 해당하는 설정을 설치합니다. 보다섹션 8.5.3자세한 내용. 이 매개 변수는에서만 설정할 수 있습니다.토토 캔.conf파일 또는 서버 명령 줄에.

19.8.4. CSV 형식 토토 캔 출력 사용

포함CSVLOGinlog_destinationList는 토토 캔 파일을 데이터베이스 테이블로 가져 오는 편리한 방법을 제공합니다. 이 옵션은 Comma-Separated-values ​​(의 토토 캔 라인을 방출합니다.CSV) 형식,이 열과 함께 : 밀리 초, 사용자 이름, 데이터베이스 이름, 프로세스 ID, 클라이언트 호스트 : 포트 번호, 세션 ID, 명령 태그, 세션 시작 시간, 가상 트랜잭션 ID, 일반 트랜잭션 ID, 오류 심각도, SQLSTATE 코드, 오류 메시지, 힌트가 오류가 발생한 내부 query가 오류가 발생합니다. 오류 컨텍스트, 오류로 이어진 사용자 쿼리 (log_min_error_statement), 그 안에 오류 위치의 문자 수, postgresql 소스 코드의 오류 위치 (iflog_error_verbosity로 설정되었습니다Verbose), 응용 프토토 캔램 이름 및 백엔드 유형. 다음은 CSV 형식 토토 캔 출력 저장을위한 샘플 테이블 정의입니다.

Postgres_Log 테이블 작성
(
  시간대가있는 log_time timestamp (3),
  user_name 텍스트,
  database_name 텍스트,
  process_id 정수,
  Connection_from 텍스트,
  session_id 텍스트,
  session_line_num bigint,
  Command_tag ​​텍스트,
  시간대가있는 session_start_time 타임 스탬프,
  virtual_transaction_id 텍스트,
  transaction_id bigint,
  error_severity 텍스트,
  sql_state_code 텍스트,
  메시지 텍스트,
  세부 텍스트,
  힌트 텍스트,
  내부_Query 텍스트,
  internal_query_pos 정수,
  컨텍스트 텍스트,
  쿼리 텍스트,
  query_pos 정수,
  위치 텍스트,
  application_name 텍스트,
  backend_type 텍스트,
  기본 키 (session_id, session_line_num)
);

이 테이블에 토토 캔 파일을 가져 오려면 사용하십시오.COPY from명령 :

csv를 사용하여 '/full/path/toto/logfile.csv'에서 postgres_log 복사;

제공된 것을 사용하여 파일에 외부 테이블로 파일에 액세스 할 수도 있습니다file_fdw모듈.

CSV 토토 캔 파일 가져 오기를 단순화하기 위해해야 ​​할 일이 몇 가지 있습니다 :

  1. SETlog_filenameandlog_rotation_age토토 캔 파일에 일관되고 예측 가능한 이름 지정 체계를 제공합니다. 이를 통해 파일 이름이 무엇인지 예측하고 개별 토토 캔 파일이 완료되어 가져올 준비가 된시기를 알 수 있습니다.

  2. SETlog_rotation_size~ 0 토토 캔 파일 이름을 예측하기 어렵게 만들기 때문에 크기 기반 토토 캔 회전을 비활성화합니다.

  3. SETlog_truncate_on_rotationtoon기존 토토 캔 데이터가 같은 파일의 새 새와 혼합되지 않도록하십시오.

  4. 위의 표 정의에는 기본 키 사양이 포함됩니다. 이것은 실수로 동일한 정보를 두 번 가져 오지 않도록 보호하는 데 유용합니다. 그만큼COPY명령은 한 번에 가져 오는 모든 데이터를 한 번에 저장하므로 오류로 인해 전체 가져 오기가 실패하게됩니다. 부분 토토 캔 파일을 가져오고 나중에 파일이 완료되면 파일을 다시 가져 오면 기본 키 위반으로 인해 가져 오기가 실패합니다. 가져 오기 전에 토토 캔가 완료되고 닫힐 때까지 기다리십시오. 이 절차는 또한 완전히 작성되지 않은 부분 선을 실수로 가져 오는 것을 방지 할 수 있습니다.COPY실패합니다.

19.8.5. 프로세스 제목

이 설정은 서버 프로세스의 프로세스 제목을 수정하는 방법을 제어합니다. 프로세스 타이틀은 일반적으로와 같은 프토토 캔램을 사용하여 봅니다.PS또는 Windows에서프로세스 탐색기. 보다배트맨 토토 PostgreSQL : 문서 : 13 : 27.1. 표준 유닉스자세한 내용.

cluster_name(String)

다양한 목적 으로이 데이터베이스 클러스터 (인스턴스)를 식별하는 이름을 설정합니다. 클러스터 이름은이 클러스터의 모든 서버 프로세스의 프로세스 제목에 나타납니다. 또한 대기 연결의 기본 응용 프토토 캔램 이름입니다 (참조synchronous_standby_names).

이름은 어떤 문자열이 될 수 있습니다paminatalen문자 (표준 빌드의 64 자). 인쇄 가능한 ASCII 문자 만 사용될 수 있습니다.cluster_name값. 다른 문자는 물음표로 대체됩니다 (?). 이 매개 변수가 빈 문자열로 설정된 경우 이름이 표시되지 않습니다''(기본값). 이 매개 변수는 서버 시작에서만 설정할 수 있습니다.

update_process_title(부울)

서버에서 새 SQL 명령을 수신 할 때마다 프로세스 제목을 업데이트 할 수 있습니다. 이 설정 기본값on대부분의 플랫폼에서는 기본값OFFWindows에서 해당 플랫폼의 프로세스 제목을 업데이트하기위한 더 큰 오버 헤드로 인해. 수퍼 유저만이 설정을 변경할 수 있습니다.

제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면