log_destination
(String
)PostgreSQL를 포함하여 서버 메시지 로깅을위한 몇 가지 방법을 지원합니다.Stderr, CSVLOG, JSONLOG및Syslog. Windows에서EventLog도 지원됩니다. 이 매개 변수를 쉼표로 분리 한 원하는 토토 캔 대상 목록으로 설정하십시오. 기본값은에 토토 캔인하는 것입니다.Stderr만. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
ifCSVLOGlog_destination
, 토토 캔 항목이 출력됩니다“쉼표 분리 값”(CSV) 형식, 토토 캔를 프토토 캔램에로드하는 데 편리합니다. 보다섹션 20.8.4자세한 내용.logging_collectorCSV 형식 로그 출력을 생성하려면 활성화해야합니다.
ifJSONLOGlog_destination
, 토토 캔 항목이 출력됩니다JSON형식. 토토 캔를 프토토 캔램에로드하는 데 편리합니다. 보다섹션 20.8.5자세한 내용.logging_collectorJSON- 형식 로그 출력을 생성하려면 활성화해야합니다.
언제든지Stderr, CSVLOG또는JSONLOG포함되어 있습니다. 파일current_logfiles
로깅 콜렉터 및 관련 로깅 대상이 현재 사용중인 로그 파일의 위치를 기록하도록 만들어졌습니다. 이는 인스턴스에서 현재 사용중인 로그를 찾는 편리한 방법을 제공합니다. 이 파일의 내용의 예는 다음과 같습니다.
stderr log/postgresql.log csvlog log/postgresql.csv jsonlog log/postgresql.json
current_logfiles
새 토토 캔 파일이 회전의 효과로 생성 될 때 그리고 언제log_destination
다시로드됩니다. 아무것도 제거됩니다Stderr, CSVLOG또는JSONLOGlog_destination
및 로깅 수집기가 비활성화 된 시점.
대부분의 UNIX 시스템에서는 시스템 구성을 변경해야합니다Syslog데몬을 사용하기위한 데몬Syslog옵션log_destination
. PostgreSQL토토 캔인 할 수 있습니다Syslog시설local0
throughLocal7
(참조syslog_facility) 그러나 기본값Syslog대부분의 플랫폼에서의 구성은 그러한 모든 메시지를 폐기합니다. 다음과 같은 것을 추가해야합니다.
local0.*/var/log/postgresql
to theSyslog그것을 작동시키기위한 데몬의 구성 파일.
Windows에서EventLog
옵션log_destination
, Windows 이벤트 뷰어가 이벤트 토토 캔 메시지를 깨끗하게 표시 할 수 있도록 이벤트 소스 및 해당 라이브러리를 운영 체제에 등록해야합니다. 보다토토 커뮤니티 : 문서 : 15 : 19.12. 이벤트 로그 등록 Windows자세한 내용.
logging_collector
(부울
)이 매개 변수는를 가능하게합니다.로깅 수집가, 이것은 토토 캔 메시지를 캡처하는 배경 프로세스입니다.Stderr토토 캔 파일로 리디렉션합니다. 이 접근법은 종종 토토 캔인하는 것보다 더 유용합니다Syslog, 일부 유형의 메시지가 나타나지 않을 수 있으므로Syslog출력. (일반적인 예제는 동적 링커 실패 메시지입니다. 다른 하나는와 같은 스크립트에 의해 생성 된 오류 메시지입니다.archive_command
.)이 매개 변수는 서버 시작시에만 설정할 수 있습니다.
토토 캔인 할 수 있습니다16999_17007로깅 수집기를 사용하지 않고; 토토 캔 메시지는 서버가 어디에 있든로 이동합니다.Stderr지시되었습니다. 그러나이 방법은 토토 캔 파일을 회전시키는 편리한 방법을 제공하지 않기 때문에 낮은 토토 캔 볼륨에만 적합합니다. 또한 로깅 수집기를 사용하지 않는 일부 플랫폼에서는 동일한 토토 캔 파일에 동시에 쓰는 여러 프로세스가 서로의 출력을 덮어 쓸 수 있기 때문에 토토 캔 컬렉터가 손실되거나 변형 될 수 있습니다..
로깅 수집기는 메시지를 잃지 않도록 설계되었습니다. 즉,로드가 매우 높은 경우 컬렉터가 뒤처 졌을 때 추가 토토 캔 메시지를 보내려고하는 동안 서버 프로세스가 차단 될 수 있습니다. 대조적으로,Syslog메시지를 작성할 수없는 경우 메시지를 삭제하는 것을 선호합니다. 즉, 그러한 경우에 일부 메시지를 기록하지 못할 수 있지만 나머지 시스템을 차단하지는 않습니다..
log_directory
(String
)언제logging_collector
활성화되어 있습니다.이 매개 변수는 로그 파일이 생성 될 디렉토리를 결정합니다. 절대 경로 또는 클러스터 데이터 디렉토리와 관련하여 지정할 수 있습니다. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.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가 존재했습니다,postgresql새 토토 캔 파일의 생성 시간의 시대를 추가 할 것입니다. 그러나 더 이상 그렇지 않습니다.
CSV 형식 출력이 활성화 된 경우log_destination
, .CSV
CSV 형식 출력의 파일 이름을 생성하기 위해 타임 스탬프 로그 파일 이름에 추가됩니다. (만약에log_filename
끝.LOG
, 접미사가 대신 교체됩니다.)
JSON- 형식 출력이 활성화 된 경우log_destination
, .json
JSON- 형식 출력의 파일 이름을 생성하기 위해 타임 스탬프 로그 파일 이름에 추가됩니다. (만약에log_filename
종료.LOG
, 접미사가 대신 교체됩니다.)
이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
log_file_mode
(Integer
)UNIX 시스템 에서이 매개 변수는 토토 캔 파일에 대한 권한을 설정합니다.logging_collector
가 활성화되었습니다. (Microsoft Windows 에서이 매개 변수는 무시됩니다.) 매개 변수 값은에 의해 허용되는 형식으로 지정된 숫자 모드 일 것으로 예상됩니다.CHMOD
및Umask
시스템 호출. (관례 옥탈 형식을 사용하려면 숫자는 a로 시작해야합니다.0
(0).)
기본 권한은입니다.0600
, 즉 서버 소유자 만 토토 캔 파일을 읽거나 쓸 수 있음을 의미합니다. 다른 일반적으로 유용한 설정은입니다.0640
, 소유자 그룹의 구성원이 파일을 읽을 수 있도록합니다. 그러나 그러한 설정을 사용하려면 변경해야합니다log_directory클러스터 데이터 디렉토리 외부의 어딘가에 파일을 저장합니다. 어쨌든 민감한 데이터를 포함 할 수 있으므로 토토 캔 파일을 세계적으로 읽을 수있는 것은 현명하지 않습니다.
이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
log_rotation_age
(Integer
)언제logging_collector
가 활성화되어 있습니다.이 매개 변수는 개별 로그 파일을 사용하는 최대 시간을 결정한 후 새 로그 파일이 생성됩니다. 이 값이 단위없이 지정되면 몇 분이 걸립니다. 기본값은 24 시간입니다. 새로운 로그 파일의 시간 기반 생성을 비활성화하려면 0으로 설정하십시오. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
log_rotation_size
(정수
)언제logging_collector
활성화되어 있으며이 매개 변수는 개별 로그 파일의 최대 크기를 결정합니다. 이 양의 데이터가 로그 파일로 방출되면 새 로그 파일이 생성됩니다. 이 값이 단위없이 지정되면 킬로 바이트로 간주됩니다. 기본값은 10 메가 바이트입니다. 새 로그 파일의 크기 기반 생성을 비활성화하기 위해 0으로 설정하십시오. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
log_truncate_on_rotation
(부울
)언제logging_collector
활성화되어 있습니다.이 매개 변수는 원인이됩니다PostgreSQL동일한 이름의 기존 로그 파일에 부여하기보다는 자르기 (오버 라이팅). 그러나 서버 스타트 업 또는 크기 기반 회전 중에 시간 기반 회전으로 인해 새 파일이 열릴 때만 자리가 발생합니다. 꺼지면 기존 파일이 모든 경우에 추가됩니다. 예를 들어,이 설정을 A와 함께 사용합니다.log_filename
LikePostgresql-%H.log
|는 24 시간당 로그 파일을 생성 한 다음 주기적으로 덮어 쓰게됩니다. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
예 : 7 일의 토토 캔를 유지하려면 하루에 하나의 토토 캔 파일이 명명되었습니다server_log.mon
, server_log.tue
등, 이번 주 토토 캔로 지난주 토토 캔를 자동으로 덮어 씁니다.log_filename
toServer_Log.%a
, log_truncate_on_rotation
toon
및log_rotation_age
to1440
.
예 : 24 시간의 토토 캔를 유지하려면 시간당 1 개의 토토 캔 파일을 보관하지만 토토 캔 파일 크기가 1GB를 초과하면 더 빨리 회전합니다.log_filename
toServer_Log.%H%m
, log_truncate_on_rotation
toon
, log_rotation_age
to60
및log_rotation_size
to1000000
. 포함%m
inlog_filename
시간의 초기 파일 이름과 다른 파일 이름을 선택하기 위해 발생할 수있는 모든 크기 구동 회전이 가능합니다.
syslog_facility
(enum
)토토 캔인 할 때Syslog활성화 되어이 매개 변수가를 결정합니다.Syslog “시설”사용하려면. 선택할 수 있습니다local0
, local1
, local2
, local3
, local4
, local5
, local6
, Local7
; 기본값은local0
. 시스템 문서도 참조 참조Syslog데몬. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
syslog_ident
(String
)토토 캔인 할 때Syslog활성화되어 있습니다.이 매개 변수는 식별하는 데 사용되는 프토토 캔램 이름을 결정합니다PostgreSQL메시지Syslog토토 캔. 기본값은Postgres
. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
SYSLOG_SEVERENCE_NUMBERS
(부울
)토토 캔인 할 때Syslog그리고 이것은 켜져 있습니다 (기본값). 그러면 각 메시지가 증가하는 시퀀스 번호 (예 :에 의해 접두사로 표시됩니다.[2]
). 이것은를 우회합니다“--- 마지막 메시지 반복 n 번 ---”기본적으로 많은 Syslog 구현이 수행되는 억제. 보다 최신 Syslog 구현에서 반복 메시지 억제를 구성 할 수 있습니다 (예 :$ repeatedMsgreduction
inrsyslog), 이것이 필요하지 않을 수 있습니다. 또한 실제로 반복 된 메시지를 억제하려면이 꺼질 수 있습니다.
이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
syslog_split_messages
(부울
)토토 캔인 할 때Syslog활성화되어 있습니다.이 매개 변수는 메시지가 Syslog로 전달되는 방법을 결정합니다. (기본값)시 (기본값) 메시지가 줄별로 분할되고 긴 줄이 분할되어 1024 바이트에 맞도록 전통적인 Syslog 구현의 일반적인 크기 제한입니다. 꺼짐에 따라 PostgreSQL 서버 로그 메시지가 그대로 Syslog 서비스로 전달되며 잠재적으로 부피가 큰 메시지에 대처하는 것은 Syslog 서비스에 달려 있습니다..
Syslog가 궁극적으로 텍스트 파일에 로그인하는 경우, 효과는 어느 쪽이든 동일하며, 대부분의 Syslog 구현이 큰 메시지를 처리 할 수 없거나 처리하도록 특별히 구성해야하기 때문에 설정을 떠나는 것이 가장 좋습니다. 그러나 Syslog가 궁극적으로 다른 매체에 글을 쓰고 있다면 메시지를 논리적으로 함께 유지하는 것이 필요하거나 더 유용 할 수 있습니다.
이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
Event_Source
(String
)토토 캔인 할 때이벤트 토토 캔활성화되어 있습니다.이 매개 변수는 식별하는 데 사용되는 프토토 캔램 이름을 결정합니다PostgreSQL로그의 메시지. 기본값은PostgreSQL
. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
log_min_messages
(enum
)컨트롤메시지 레벨서버 토토 캔에 기록됩니다. 유효한 값은Debug5
, Debug4
, Debug3
, Debug2
, Debug1
, Info
, 통지
, 경고
, 오류
, log
, 치명적
및panic
. 각 레벨에는이를 따르는 모든 레벨이 포함됩니다. 레벨이 나중에 더 적은 메시지가 로그로 전송됩니다. 기본값은경고
. 참고log
여기와 다른 순위가 있습니다client_min_messages. 적절한 수퍼 유행자 및 사용자 만SET
권한은이 설정을 변경할 수 있습니다.
log_min_error_statement
(enum
)제어 서버 로그에 오류 조건을 유발하는 SQL 문이 기록됩니다. 현재 SQL 문은 지정된 메시지의 모든 메시지에 대해 로그 항목에 포함됩니다심각도이상. 유효한 값은Debug5
, Debug4
, Debug3
, Debug2
, Debug1
, 정보
, 통지
, 경고
, 오류
, log
, 치명적
및panic
. 기본값은오류
, 이는 오류, 로그 메시지, 치명적인 오류 또는 공황을 일으키는 진술이 기록됩니다. 실패한 명령문의 로깅을 효과적으로 끄려면이 매개 변수를로 설정하십시오.panic
. 적절한 수퍼 유행자 및 사용자 만SET
권한은이 설정을 변경할 수 있습니다.
log_min_duration_statement
(정수
)명령문이 최소한 지정된 시간 동안 실행되면 각 완료된 명령문의 지속 시간이 기록됩니다. 예를 들어,로 설정하면250ms
그러면 250ms 이상 실행되는 모든 SQL 문은 기록됩니다. 이 매개 변수를 활성화하면 응용 프로그램에서 최적화되지 않은 쿼리를 추적하는 데 도움이 될 수 있습니다. 이 값이 단위없이 지정되면 밀리 초로 간주됩니다. 이것을 제로 인쇄물로 설정하면 모든 진술 기간-1
(기본값)는 로깅 명령문 기간을 비활성화합니다. 적절한 수퍼 유행자 및 사용자 만SET
권한 이이 설정을 변경할 수 있습니다.
이것은 재정의log_min_duration_sample,이 설정을 초과하는 쿼리는 샘플링이 적용되지 않으며 항상 기록됩니다.
확장 쿼리 프로토콜을 사용하는 클라이언트, 구문 분석 기간, 바인딩 및 실행 단계를 독립적으로 기록합니다.
이 옵션을 함께 사용할 때log_statementlog_statement
지속 시간 로그 메시지에서 반복되지 않습니다. 사용하지 않는 경우Syslog, PID 또는 세션 ID를 사용하여를 기록하는 것이 좋습니다.log_line_prefix프로세스 ID 또는 세션 ID를 사용하여 명령문 메시지를 이후의 기간 메시지에 연결할 수 있도록
log_min_duration_sample
(정수
)최소한 지정된 시간 동안 실행 된 완료된 문의 지속 시간을 샘플링 할 수 있습니다. 이것은와 동일한 종류의 토토 캔 항목을 생성합니다.log_min_duration_statement, 그러나 실행 된 문의 하위 집합에 대해서만 샘플 속도를 제어하여log_statement_sample_rate. 예를 들어,로 설정하면100ms
그러면 100ms 이상 실행되는 모든 SQL 문은 샘플링을 위해 고려됩니다. 트래픽이 너무 높아서 모든 쿼리를 기록 할 때이 매개 변수를 활성화하면 도움이 될 수 있습니다. 이 값이 단위없이 지정되면 밀리 초로 간주됩니다. 이것을 제로 샘플로 설정하면 모든 명령문 기간-1
(기본값)는 샘플링 명령문 기간을 비활성화합니다. 적절한 수퍼 유행자 및 사용자 만SET
권한은이 설정을 변경할 수 있습니다.
이 설정은보다 우선 순위가 낮습니다.log_min_duration_statement
log_min_duration_statement
| 샘플링이 적용되지 않으며 항상 기록됩니다.
다른 노트log_min_duration_statement
이 설정에도 적용됩니다.
log_statement_sample_rate
(플로팅 포인트
)지속 시간을 초과하는 문의 비율을 결정합니다log_min_duration_sample토토 캔인합니다. 예를 들어 샘플링은 확률 론적입니다0.5
주어진 진술이 기록 될 것이라는 두 가지에 통계적으로 하나의 기회가 있음을 의미합니다. 기본값은1.0
, 모든 샘플링 된 명령문을 기록하는 것을 의미합니다. 이것을 설정과 동일한 샘플링 된 명령문 기간 로깅을 비활성화합니다log_min_duration_sample
to-1
. 적절한 수퍼 유행자 및 사용자 만SET
권한은이 설정을 변경할 수 있습니다.
log_transaction_sample_rate
(플로팅 포인트
)다른 이유로 기록 된 진술 외에도 진술이 모두 기록 된 트랜잭션의 일부를 설정합니다. 진술의 지속 시간에 관계없이 각 새로운 거래에 적용됩니다. 예를 들어 샘플링은 확률 론적입니다0.1
주어진 트랜잭션이 기록 될 10 개에 통계적으로 한 번의 기회가 있음을 의미합니다.log_transaction_sample_rate
거래 샘플을 구성하는 데 도움이 될 수 있습니다. 기본값은0
, 추가 거래에서 명세서를 기록하지 않음을 의미합니다. 이것을 설정1
모든 트랜잭션의 모든 진술을 기록합니다. 적절한 수퍼 유행자 및 사용자 만set
권한은이 설정을 변경할 수 있습니다.
모든 문장 옵션과 마찬가지로이 옵션은 상당한 오버 헤드를 추가 할 수 있습니다.
log_startup_progress_interval
(정수
)시작 프로세스가 계속 진행중인 장기 실행 작업에 대한 메시지와 해당 작업의 추가 진행 메시지 간의 간격을 기록한 후 시간을 설정합니다. 기본값은 10 초입니다. 설정0
기능을 비활성화합니다. 이 값이 단위없이 지정되면 밀리 초로 간주됩니다. 이 설정은 각 작업에 별도로 적용됩니다. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
예를 들어, 데이터 디렉토리를 동기화하는 데 25 초가 걸리고 그 이후에 25 초가 소요되는 경우, 무제한 관계를 재설정하는 데 8 초가 걸리고이 설정이 기본값이 10 초인 경우 10 초 동안 데이터 디렉토리를 동기화하기위한 메시지는 20 초 동안 진행된 후에는 다시 로그인되지 않습니다.
표 20.2PostgreSQL. 로깅 출력이 전송되는 경우Syslog또는 Windows 'EventLog, 심각도 레벨은 표에 표시된대로 번역됩니다.
표 20.2. 메시지 심각도 수준
심각도 | usage | Syslog | EventLog |
---|---|---|---|
Debug1 .. Debug5 |
개발자가 사용할 수 있도록 연속적으로 더 많은 정보를 제공합니다. | 디버그 |
정보 |
info |
사용자가 암시 적으로 요청한 정보를 제공합니다 (예 : 출력진공 장점 . |
정보 |
정보 |
통지 |
사용자에게 도움이 될 수있는 정보 (예 : 긴 식별자의 잘린 통지)를 제공합니다. | 통지 |
정보 |
경고 |
가능한 문제에 대한 경고를 제공합니다 (예 :커밋 트랜잭션 블록 외부. |
통지 |
경고 |
오류 |
현재 명령이 중단 된 오류를보고합니다. | 경고 |
오류 |
log |
관리자에게 관심있는 정보를보고, 예를 들어 체크 포인트 활동. | 정보 |
정보 |
치명적 |
현재 세션이 중단 된 오류를보고합니다. | err |
오류 |
panic |
모든 데이터베이스 세션이 중단 된 오류를보고합니다. | Crit |
오류 |
토토 캔로 선택한 내용은 보안에 영향을 줄 수 있습니다. 보다PostgreSQL : 문서 : 15 : 25.3. 롤 토토 파일 유지 관리.
application_name
(String
)theApplication_Name
|지명 된 ATALEN
문자 (표준 빌드의 64 자). 일반적으로 서버에 연결시 응용 프토토 캔램에 의해 설정됩니다. 이름은에 표시됩니다.pg_stat_activity
CSV 로그 항목에 포함되어 있습니다. 또한를 통해 정기 로그 항목에 포함될 수 있습니다.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 SET,debug_pretty_print
생성 된 메시지를 들여 쓰기debug_print_parse
, debug_print_rewritten
또는debug_print_plan
. 이로 인해 더 읽기 쉽지만 출력이 훨씬 길어“compact”꺼져있을 때 사용되는 형식. 기본적으로 켜져 있습니다.
log_autovacuum_min_duration
(정수
)최소한 지정된 시간 동안 실행되면 Autovacuum에 의해 실행 된 각 조치를 기록합니다. 이것을 0 로그로 설정하면 모든 Autovacuum 동작.-1
autovacuum 동작을 기록합니다. 이 값이 단위없이 지정되면 밀리 초로 간주됩니다. 예를 들어, 이것을 설정하면250ms
그러면 250ms 이상 실행되는 모든 자동 진공 및 분석이 기록됩니다. 또한이 매개 변수가 이외의 값으로 설정된 경우-1
, 상충되는 잠금 장치 또는 동시에 삭제 된 관계로 인해 Autovacuum 조치가 건너 뛸 경우 메시지가 기록됩니다. 기본값은10min
. 이 매개 변수를 활성화하는 것은 오토바 쿠움 활동을 추적하는 데 도움이 될 수 있습니다. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄; 그러나 테이블 스토리지 매개 변수를 변경하여 개별 테이블에 대해 설정을 무시할 수 있습니다.
log_checkpoints
(부울
)서버 로그에 검사 점과 재시작이 로그인됩니다. 작성된 버퍼 수와 쓰기 시간을 포함하여 일부 통계는 로그 메시지에 포함됩니다. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에. 기본값이 켜져 있습니다.
log_connections
(부울
)각각의 시도 된 연결이 서버에 대한 연결을 기록 할뿐만 아니라 클라이언트 인증 (필요한 경우) 및 인증을 성공적으로 완료합니다. 적절한 수퍼 유행자 및 사용자 만SET
권한은 세션 시작 시이 매개 변수를 변경할 수 있으며 세션 내에서 전혀 변경할 수 없습니다. 기본값은OFF
.
일부 클라이언트 프토토 캔램, 유사PSQL, 비밀번호가 필요한지 결정하는 동안 두 번 연결하려고 시도하므로 중복“연결 수신”메시지가 반드시 문제를 나타내는 것은 아닙니다.
log_disconnections
(부울
)세션 종료를 기록합니다. 로그 출력은와 유사한 정보를 제공합니다.log_connections
와 세션 기간. 적절한 수퍼 유행자 및 사용자 만SET
권한은 세션 시작 시이 매개 변수를 변경할 수 있으며 세션 내에서 전혀 변경할 수 없습니다. 기본값은OFF
.
log_duration
(부울
)완성 된 모든 문의 지속 시간이 기록됩니다. 기본값은OFF
. 적절한 수퍼 유행자 및 사용자 만SET
권한 이이 설정을 변경할 수 있습니다.
확장 쿼리 프로토콜을 사용하는 클라이언트의 경우 구문 분석 기간, 바인딩 및 실행 단계가 독립적으로 기록됩니다.
활성화의 차이log_duration
및 설정log_min_duration_statement~ 0은 초과하는 것입니다log_min_duration_statement
쿼리 텍스트가 기록되도록 강요하지만이 옵션은 그렇지 않습니다. 따라서 iflog_duration
ison
andlog_min_duration_statement
양수 값이 있고 모든 지속 시간이 기록되지만 쿼리 텍스트는 임계 값을 초과하는 문에 대해서만 포함됩니다. 이 동작은 고 부하 설치에서 통계를 수집하는 데 유용 할 수 있습니다.
log_error_verbosity
(enum
)로그인 된 각 메시지에 대해 서버 로그에 작성된 세부 사항을 제어합니다. 유효한 값은Terse
, 기본값
및Verbose
, 각각 표시된 메시지에 더 많은 필드를 추가합니다.Terse
의 벌목 제외세부 사항
, 힌트
, 쿼리
및Context
오류 정보.Verbose
출력 포함sqlstate
오류 코드 (참조스포츠 토토 결과 : 문서 : 15 : 부록 A. 스포츠 토토 결과 스포츠 토토 결과 코드) 및 오류를 생성 한 소스 코드 파일 이름, 함수 이름 및 줄 번호. 적절한 수퍼 유행자 및 사용자 만set
권한 이이 설정을 변경할 수 있습니다.
log_hostname
(부울
)기본적으로 연결 로그 메시지는 연결 호스트의 IP 주소 만 표시합니다. 이 매개 변수를 켜면 호스트 이름의 로깅도 원인입니다. 호스트 이름 해상도 설정에 따라 무시할 수없는 성능 페널티를 부과 할 수 있습니다. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
log_line_prefix
(String
)이것은 Aprintf
-각 토토 캔 라인의 시작 부분에서 출력되는 스타일 문자열.%
문자 시작“탈출 시퀀스”아래에 요약 된 상태 정보로 대체됩니다. 인식되지 않은 탈출은 무시됩니다. 다른 문자는 로그 라인에 직접 복사됩니다. 일부 이스케이프는 세션 프로세스에 의해서만 인식되며 기본 서버 프로세스와 같은 백그라운드 프로세스에 의해 비어있는 것으로 취급됩니다. 상태 정보는 % 후 및 옵션 전 및 옵션 이전의 숫자 문자를 지정하여 왼쪽 또는 오른쪽으로 정렬 될 수 있습니다. 음수 값은 공백으로 오른쪽에 상태 정보가 패딩되어 최소 너비를 제공하는 반면, 양수 값은 왼쪽에 패드됩니다. 패딩은 로그 파일의 인간 가독성을 돕는 데 유용 할 수 있습니다.
이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에. 기본값은'%m [%p]'
타임 스탬프와 프로세스 ID를 기록하는 것은
탈출 | 효과 | 세션 만 |
---|---|---|
%a |
응용 프토토 캔램 이름 | 예 |
%U |
사용자 이름 | 예 |
%d |
데이터베이스 이름 | 예 |
%r |
원격 호스트 이름 또는 IP 주소 및 원격 포트 | 예 |
%H |
원격 호스트 이름 또는 IP 주소 | 예 |
%B |
백엔드 유형 | 아니오 |
%P |
프로세스 ID | 아니오 |
%P |
병렬 그룹 리더의 프로세스 ID,이 프로세스가 병렬 쿼리 작업자 인 경우 | 아니오 |
%t |
밀리 초없는 타임 스탬프 | 아니오 |
%m |
밀리 초가있는 타임 스탬프 | 아니오 |
%n |
밀리 초가있는 타임 스탬프 (UNIX 에포크로) | 아니오 |
%I |
명령 태그 : 세션 유형의 현재 명령 | 예 |
%e |
SQLSTATE 오류 코드 | 아니오 |
%C |
세션 ID : 아래 참조 | 아니오 |
%l |
각 세션 또는 프로세스에 대한 로그 라인 수, 1 | 아니오 |
%s |
프로세스 시작 시간 스탬프 | 아니오 |
%V |
가상 트랜잭션 ID (backendid/localXID) | 아니오 |
%x |
트랜잭션 ID (0 할당되지 않은 경우 0) | 아니요 |
%Q |
출력은 없지만,이 시점에서 문자열에서 중지하지 말라고 말합니다. 세션 프로세스로 무시 | 아니오 |
%Q |
현재 쿼리의 쿼리 식별자. 쿼리 식별자는 기본적으로 계산되지 않으므로이 필드는 0이면 0compute_query_id매개 변수가 활성화되어 있거나 쿼리 식별자를 계산하는 타사 모듈이 구성됩니다. | 예 |
%% |
리터럴% |
아니오 |
백엔드 유형은 열에 해당합니다backend_type
보기에서pg_stat_activity
이지만 해당보기에는 표시되지 않는 토토 캔에 추가 유형이 나타날 수 있습니다.
the%C
Escape는 두 개의 4 바이트 16 진수 숫자 (선행 0이없는)로 구성된 준 유니 퀴크 세션 식별자를 인쇄합니다. 숫자는 프로세스 시작 시간과 프로세스 ID이므로%C
해당 항목을 인쇄하는 공간 절약 방법으로도 사용할 수도 있습니다. 예를 들어, 세션 식별자를 생성하려면pg_stat_activity
,이 쿼리를 사용하십시오 :
select to_hex (trunc (extract (exoch from backend_start)) :: 정수) || '.' || to_hex (pid) pg_stat_activity에서;
remempty 값을 설정 한 경우log_line_prefix
, 당신은 일반적으로 마지막 캐릭터를 공간으로 만들어야합니다. 구두점 문자도 사용할 수 있습니다.
Syslog자체 타임 스탬프 및 프로세스 ID 정보를 생성하므로 로깅하는 경우 이스케이프를 포함시키고 싶지 않을 것입니다.Syslog.
the%Q
Escape는 사용자 또는 데이터베이스 이름과 같은 세션 (백엔드) 컨텍스트에만 사용할 수있는 정보를 포함 할 때 유용합니다. 예를 들어:
log_line_prefix = '%m [%p]%q%u@%d/%a'
the%Q
Escape는 항상 라인 출력에 대한 제로 식별자를보고합니다.log_statement왜냐하면log_statement
식별자를 계산할 수없는 잘못된 문을 포함하여 식별자를 계산하기 전에 출력을 생성합니다.
log_lock_waits
(부울
)세션이 더 오래 기다릴 때 로그 메시지가 생성되는지Deadlock_timeout자물쇠를 얻으려면. 이것은 잠금 대기가 성능 저하를 유발하는지 여부를 결정하는 데 유용합니다. 기본값은OFF
. 적절한 수퍼 유행자 및 사용자 만SET
권한은이 설정을 변경할 수 있습니다.
log_recovery_conflict_waits
(부울
)시작 프로세스가 더 길어질 때 로그 메시지가 생성되는지 여부를 제어합니다Deadlock_timeout
복구 충돌. 이것은 복구 충돌로 인해 복구가 Wal을 적용하는 것을 막는지를 결정하는 데 유용합니다.
기본값은OFF
. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
log_parameter_max_length
(Integer
)0보다 크면 비 방향 명령문-로깅 메시지로 기록 된 각 바인드 매개 변수 값 이이 많은 바이트에 트림됩니다. 제로는 비 에어러 명령문에 대한 바인드 매개 변수의 로깅을 비활성화합니다.-1
(기본값)는 바인드 매개 변수를 전체 토토 캔인 할 수 있습니다. 이 값이 단위없이 지정되면 바이트로 사용됩니다. 적절한 수퍼 유행자 및 사용자 만SET
권한은이 설정을 변경할 수 있습니다.
이 설정은의 결과로 인쇄 된 로그 메시지에만 영향을 미칩니다.log_statement, log_duration및 관련 설정. 이 설정의 0이 아닌 값이 오버 헤드를 추가하십시오. 특히 파라미터가 이진 형식으로 전송되는 경우 텍스트로 변환이 필요합니다.
log_parameter_max_length_on_error
(정수
)0보다 크면 오류 메시지에보고 된 각 바인드 매개 변수 값 이이 많은 바이트로 트리밍됩니다. 0 (기본값) 오류 메시지에 바인드 매개 변수를 포함하여 비활성화됩니다.-1
결합 매개 변수를 전체적으로 인쇄 할 수 있습니다. 이 값이 단위없이 지정되면 바이트로 간주됩니다.
이 설정의 0이 아닌 값 오버 헤드 추가PostgreSQL오류가 발생하는지 여부에 관계없이 각 문의 시작시 메모리에 매개 변수 값의 텍스트 표현을 저장해야합니다. 바인드 매개 변수가 텍스트로 전송 될 때보 다 바인드 파라미터가 이진 형태로 전송 될 때 오버 헤드는 더 큽니다. 전자의 경우는 데이터 변환이 필요하고 후자는 문자열을 복사하면됩니다..
log_statement
(enum
)통제 어떤 SQL 문을 기록합니다. 유효한 값은없음
(OFF),DDL
, mod
및all
(모든 진술).DDL
와 같은 모든 데이터 정의 문장을 기록합니다.Create
, Alter
및드롭
진술.mod
모든 토토 캔DDL
진술,69214_69222
, 업데이트
, 삭제
, Truncate
및복사
. 준비
, execute
및분석
포함 된 명령이 적절한 유형 인 경우 명령문도 기록됩니다. 확장 쿼리 프로토콜을 사용하는 클라이언트의 경우 로깅이 실행 메시지를 수신 할 때 발생하며 바인드 매개 변수의 값이 포함됩니다 (임베드 된 단일 쿼트 마크가 두 배로 늘어 됨)..
기본값은없음
. 적절한 수퍼 유행자 및 사용자 만SET
권한은이 설정을 변경할 수 있습니다.
간단한 구문 오류가 포함 된 문장은에 의해서도 기록되지 않습니다log_statement
=all
설정, 로그 메시지는 기본 구문 분석이 수행 된 후에 만 명령문 유형을 결정하기 위해 방출되기 때문에 설정. 확장 쿼리 프로토콜의 경우,이 설정은 마찬가지로 실행 단계 전에 실패하는 문을 기록하지 않습니다 (즉, 구문 분석 또는 계획 중). 세트log_min_error_statement
to오류
(또는 하단) 그러한 진술을 기록합니다.
토토 캔인 한 명령문에는 민감한 데이터가 표시 될 수 있으며 일반 텍스트 비밀번호를 포함 할 수도 있습니다.
log_replication_commands
(부울
)각 복제 명령이 서버 토토 캔에 토토 캔인됩니다. 보다PostgreSQL : 문서 : 15 : 55.4. 사설 토토 사이트 복제 프로토콜복제 명령에 대한 자세한 내용. 기본값은입니다.OFF
. 적절한 수퍼 유행자 및 사용자 만SET
권한은이 설정을 변경할 수 있습니다.
log_temp_files
(Integer
)임시 파일 이름 및 크기의 로깅을 제어합니다. 정렬, 해시 및 임시 쿼리 결과에 대해 임시 파일을 작성할 수 있습니다. 이 설정에서 활성화 된 경우 삭제 될 때 각 임시 파일에 대해 로그 항목이 방출됩니다. 0의 값은 모든 임시 파일 정보를 로그인 반면, 긍정적 값은 크기가 지정된 데이터 양보다 큰 파일 만 기록합니다. 이 값이 단위없이 지정되면 킬로 바이트로 간주됩니다. 기본 설정은 -1로 이러한 로깅을 비활성화합니다. 적절한 수퍼 유행자 및 사용자 만SET
권한은이 설정을 변경할 수 있습니다.
log_timezone
(String
)서버 토토 캔에 작성된 타임 스탬프에 사용되는 시간대를 설정합니다. 같지 않은TimeZone,이 값은 클러스터 전체에 있으므로 모든 세션이 일관되게 타임 스탬프를보고합니다. 내장 기본값은입니다.gmt
, 그러나 일반적으로postgresql.conf
;initdb시스템 환경에 해당하는 설정을 설치합니다. 보다섹션 8.5.3자세한 내용은. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf
파일 또는 서버 명령 줄에.
포함CSVLOG
inlog_destination
List는 로그 파일을 데이터베이스 테이블로 가져 오는 편리한 방법을 제공합니다. 이 옵션은 Comma-Separated-values (의 로그 라인을 방출합니다.CSV) 형식,이 열과 함께 : 밀리 초, 사용자 이름, 데이터베이스 이름, 프로세스 ID, 클라이언트 호스트 : 포트 번호, 세션 ID, 세션 당 선 번호, 명령 태그, 세션 시작 시간, 가상 트랜잭션 ID, 일반 트랜잭션 ID, 오류 심각도, 오류 메시지, 오류 메시지, 힌트가 오류가 발생한 내부 query (오류) 오류 컨텍스트, 오류로 이어진 사용자 쿼리 (에 오류가 발생한 사용자 쿼리log_min_error_statement
), 그 안에 오류 위치의 문자 수, postgresql 소스 코드의 오류 위치 (iflog_error_verbosity
로 설정되었습니다Verbose
), 응용 프토토 캔램 이름, 백엔드 유형, 병렬 그룹 리더의 프로세스 ID 및 쿼리 ID. 다음은 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 텍스트, leader_pid 정수, query_id bigint, 기본 키 (session_id, session_line_num) );
이 테이블에 토토 캔 파일을 가져 오려면 사용하십시오.복사
명령 :
csv를 사용하여 '/full/path/to/logfile.csv'에서 postgres_log 복사;
제공된 것을 사용하여 파일에 외부 테이블로 파일에 액세스 할 수도 있습니다file_fdw모듈.
CSV 로그 파일 가져 오기를 단순화하기 위해해야 할 일이 몇 가지 있습니다 :
SETlog_filename
andlog_rotation_age
로그 파일에 일관되고 예측 가능한 이름 지정 체계를 제공합니다. 이를 통해 파일 이름이 무엇인지 예측하고 개별 로그 파일이 완료되어 가져올 준비가 된시기를 알 수 있습니다.
SETlog_rotation_size
토토 캔 파일 이름을 예측하기 어렵게 만들기 때문에 크기 기반 토토 캔 회전을 비활성화하려면 0 ~ 0입니다.
SETlog_truncate_on_rotation
toon
따라서 이전 토토 캔 데이터가 같은 파일의 새 새와 혼합되지 않도록하십시오.
위의 표 정의에는 기본 키 사양이 포함됩니다. 이것은 실수로 동일한 정보를 두 번 가져 오지 않도록 보호하는 데 유용합니다. 그만큼COPY
명령은 한 번에 가져 오는 모든 데이터를 한 번에 저장하므로 오류로 인해 전체 가져 오기가 실패하게됩니다. 부분 로그 파일을 가져오고 나중에 파일이 완료되면 파일을 다시 가져 오면 기본 키 위반으로 인해 가져 오기가 실패합니다. 가져 오기 전에 로그가 완료되고 닫힐 때까지 기다리십시오. 이 절차는 또한 완전히 작성되지 않은 부분 선을 실수로 가져 오는 것을 방지 할 수 있습니다.COPY
실패합니다.
포함JSONLOG
inlog_destination
목록은 로그 파일을 여러 다른 프로그램으로 가져 오는 편리한 방법을 제공합니다. 이 옵션은 로그 라인을 방출합니다JSON형식.
NULL 값을 가진 문자열 필드는 출력에서 제외됩니다. 향후 추가 필드가 추가 될 수 있습니다. 프로세스하는 사용자 애플리케이션JSONLOG
출력은 알 수없는 필드를 무시해야합니다.
각 로그 라인은 키 세트와 관련 값이있는 JSON 객체로 직렬화됩니다.표 20.3.
표 20.3. JSON 로그 항목의 키 및 값
키 이름 | 타입 | 설명 |
---|---|---|
타임 스탬프 |
String | 밀리 초가있는 타임 스탬프 |
사용자 |
String | 사용자 이름 |
dbname |
String | 데이터베이스 이름 |
PID |
번호 | 프로세스 ID |
Remote_host |
String | 클라이언트 호스트 |
Remote_port |
번호 | 클라이언트 포트 |
session_id |
String | 세션 ID |
line_num |
번호 | 세션 당 줄 번호 |
PS |
String | 현재 PS 디스플레이 |
session_start |
String | 세션 시작 시간 |
VXID |
String | 가상 트랜잭션 ID |
TXID |
String | 정규 거래 ID |
ERROR_SEVERITY |
String | 오류 심각도 |
state_code |
String | sqlstate code |
메시지 |
String | 오류 메시지 |
세부 사항 |
String | 오류 메시지 세부 사항 |
힌트 |
String | 오류 메시지 힌트 |
내부_Query |
String | 오류로 이어진 내부 쿼리 |
내부 _position |
번호 | 커서 인덱스 내부 쿼리 |
Context |
String | 오류 컨텍스트 |
성명서 |
String | 클라이언트 지원 쿼리 문자열 |
cursor_position |
번호 | 쿼리 문자열에 커서 색인 |
func_name |
String | 오류 위치 함수 이름 |
file_name |
String | 오류 위치의 파일 이름 |
file_line_num |
번호 | 오류 위치의 파일 줄 번호 |
Application_Name |
String | 클라이언트 응용 프토토 캔램 이름 |
backend_type |
String | 백엔드 유형 |
leader_pid |
번호 | 활동적인 병렬 근로자를위한 리더의 프로세스 ID |
query_id |
번호 | 쿼리 ID |
이 설정은 서버 프로세스의 프로세스 제목을 수정하는 방법을 제어합니다. 프로세스 타이틀은 일반적으로와 같은 프토토 캔램을 사용하여 봅니다.PS또는 Windows에서프로세스 탐색기. 보다무지개 토토 PostgreSQL : 문서 : 15 : 28.1. 표준 유닉스 도구자세한 내용.
cluster_name
(String
)다양한 목적 으로이 데이터베이스 클러스터 (인스턴스)를 식별하는 이름을 설정합니다. 클러스터 이름은이 클러스터의 모든 서버 프로세스의 프로세스 제목에 나타납니다. 또한 대기 연결의 기본 응용 프토토 캔램 이름입니다 (참조synchronous_standby_names).
이름은보다 작은 문자열 일 수 있습니다지명 된 ATALEN
문자 (표준 빌드의 64 자). 인쇄 가능한 ASCII 문자 만 사용될 수 있습니다.cluster_name
값. 다른 문자는 물음표로 대체됩니다 (?
). 이 매개 변수가 빈 문자열로 설정된 경우 이름이 표시되지 않습니다''
(기본값). 이 매개 변수는 서버 시작에서만 설정할 수 있습니다.
update_process_title
(부울
)서버에서 새 SQL 명령을 수신 할 때마다 프로세스 제목을 업데이트 할 수 있습니다. 이 설정 기본값on
대부분의 플랫폼에서는 기본적으로OFF
Windows에서 해당 플랫폼의 프로세스 제목을 업데이트하기위한 더 큰 오버 헤드로 인해. 적절한 수퍼 유행자 및 사용자 만set
권한은이 설정을 변경할 수 있습니다.
문서에 맞지 않는 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면