postgresql지원 를 포함하여 서버 메시지 로깅을위한 몇 가지 방법Stderr, CSVLOGandSyslog. Windows에서EventLog도 지원됩니다. 이것을 설정하십시오 원하는 토토 핫 대상 목록에 매개 변수가 분리되었습니다 쉼표로. 기본값은에 토토 핫인하는 것입니다.Stderr만. 이 매개 변수 는만 할 수 있습니다 에서 설정해야합니다.postgresql.conf파일 또는 서버 명령 줄에.
ifCSVLOG가 포함되어 있습니다 안에log_destination, 토토 핫 항목 출력"쉼표가 분리되었습니다 값"형식. 로딩에 편리합니다 프토토 핫램으로. 보다섹션 18.7.4자세한 내용.logging_collectorCSV 형식 토토 핫 출력 생성.
참고 :대부분의 UNIX 시스템에서는 필요합니다 시스템 구성을 변경하려면Syslog데몬 인 를 사용하기 위해Syslog옵션log_destination. PostgreSQL토토 핫인 할 수 있습니다Syslog시설local0throughLocal7(참조syslog_facility), 하지만 기본값Syslog대부분의 구성 플랫폼은 그러한 모든 메시지를 폐기합니다. 당신은 할 것입니다 와 같은 것을 추가해야합니다.
local0.*/var/log/postgresqlSyslog작동하도록 데몬의 구성 파일.
이 매개 변수는 메시지가 전송 허용Stderr및 CSV 형식 토토 핫 출력, 토토 핫 파일로 캡처 및 리디렉션됩니다. 이것 접근 방식은 종종 토토 핫인하는 것보다 더 유용합니다Syslog일부 유형 이후 메시지의 메시지가 나타나지 않을 수 있습니다Syslog출력 (일반적인 예는입니다 동적 링커 실패 메시지). 이 매개 변수 는만 할 수 있습니다 서버 시작에서 설정해야합니다.
언제logging_collectoris 활성화 된이 매개 변수는 디렉토리를 결정합니다 토토 핫 파일이 생성됩니다. an으로 지정할 수 있습니다 절대 경로 또는 클러스터 데이터 디렉토리와 관련이 있습니다. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf파일 또는 서버에서 명령 줄.
언제logging_collectoris 활성화 된이 매개 변수는 파일 이름을 설정합니다 토토 핫 파일을 생성했습니다. 값은 A로 취급됩니다.Strftime패턴,%-escapes를 사용하여 지정할 수 있습니다 시간 변동 파일 이름. (있는 경우에 유의하십시오 시간 구역 의존적%-escapes, 계산은에 의해 지정된 영역에서 이루어집니다.log_timezone.) 그렇지 않은 경우%-스케이프가 존재합니다,PostgreSQL추가 할 것입니다 새로운 로그 파일의 생성 시간의 시대. 을 위한 예, iflog_filenameServer_Log그런 다음 선택한 파일입니다 이름은Server_Log.1093827753토토 핫 시작 8 월 29 일 일요일 19:02:33 2004 MST. 이 매개 변수 는만 할 수 있습니다 에서 설정해야합니다.postgresql.conf파일 또는 서버 명령 줄에.
CSV 형식 출력이 활성화 된 경우log_destination, .CSV타임 스탬프에 추가됩니다 CSV-Format의 파일 이름을 작성하려면 파일 이름 토토 핫 이름 산출. (만약에log_filename끝.LOG, 접미사가 교체됩니다 대신.) 위의 예의 경우 CSV 파일 이름은Server_Log.1093827753.CSV.
언제logging_collectorIS 활성화 된이 매개 변수는 최대 수명을 결정합니다 개별 토토 핫 파일의. 이 몇 분 후에 경과하면 새 토토 핫 파일이 생성됩니다. 0으로 설정하십시오 새로운 토토 핫 파일의 시간 기반 생성을 비활성화합니다. 이것 매개 변수는에서만 설정할 수 있습니다.postgresql.conf파일 또는 서버에서 명령 줄.
언제logging_collectoris 활성화 된이 매개 변수는 AN의 최대 크기를 결정합니다 개별 토토 핫 파일. 이 후 많은 킬로바이트가있었습니다 토토 핫 파일로 방출되면 새 토토 핫 파일이 생성됩니다. 크기 기반 새로운 토토 핫 생성을 비활성화하기 위해 0으로 설정 파일. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf파일 또는 서버에서 명령 줄.
언제logging_collectoris 활성화하면이 매개 변수는 원인입니다postgresqlTO TRUNCATE (Overwrite), 기존 토토 핫 파일에 부여하는 대신 이름. 그러나 자르기는 새 파일 일 때만 발생합니다 시간 기반 회전으로 인해 열리고 있습니다 서버 시작 또는 크기 기반 회전. 꺼짐, 기존 파일은 모든 경우에 추가됩니다. 을 위한 예,이 설정을 a와 함께 사용합니다.log_filename좋아요Postgresql-%H.log24 시간당 로그 파일을 생성 한 다음 주기적으로 그들을 덮고 있습니다. 이 매개 변수는 가능합니다 에 설정postgresql.conf파일 또는 서버 명령 줄에서.
예 : 7 일의 토토 핫를 유지하려면 하루에 하나의 토토 핫 파일 이름server_log.mon, server_log.tue등, 자동으로 이번 주 토토 핫로 지난주 토토 핫를 덮어 씁니다.log_filenametoServer_Log.%a, log_truncate_on_rotationtoon및log_rotation_ageto1440.
예 : 24 시간의 토토 핫를 유지하려면 1 개의 토토 핫 파일이 시간이지만 토토 핫 파일 크기가 초과되면 더 빨리 회전합니다. 1GB, setlog_filenametoServer_Log.%H%m, log_truncate_on_rotationtoon, log_rotation_ageto60및log_rotation_sizeto1000000. 포함%minlog_filename모든 크기 구동을 허용합니다 파일 이름을 선택하기 위해 발생할 수있는 회전 시간의 초기 파일 이름과 다릅니다.
토토 핫인 할 때Syslog이 매개 변수를 활성화했습니다 결정Syslog "시설"사용하려면. 당신은 할 수 있습니다 선택local0, local1, local2, local3, local4, local5, local6, Local7; 기본값은local0. 귀하의 문서도 참조하십시오 시스템Syslog데몬. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf파일 또는 서버에서 명령 줄. 이 매개 변수는 그렇지 않으면 사용할 수 없습니다 Syslog를 지원하여 서버가 컴파일됩니다.
토토 핫인 할 때Syslog이 매개 변수가 활성화되었습니다 식별하는 데 사용되는 프토토 핫램 이름을 결정합니다PostgreSQL메시지Syslog토토 핫. 기본값은Postgres. 이 매개 변수는 할 수 있습니다 에서만 설정됩니다.postgresql.conf파일 또는 서버에서 명령 줄. 이 매개 변수는 그렇지 않으면 사용할 수 없습니다 Syslog를 지원하여 서버가 컴파일됩니다.
클라이언트에게 전송되는 메시지 레벨을 제어합니다. 유효한 값은Debug5, Debug4, Debug3, Debug2, Debug1, log, 통지, 경고, 토토 핫, 치명적및panic. 각 레벨에는 모두가 포함됩니다 그것을 따르는 레벨. 나중에 레벨이 적을수록 더 적습니다 메시지가 전송됩니다. 기본값은통지. 참고log여기와 다른 순위가 있습니다log_min_messages.
어떤 메시지 레벨에 기록되는지 컨트롤 서버 로그. 유효한 값은Debug5, Debug4, Debug3, Debug2, Debug1, info, 통지, 경고, 토토 핫, log, 치명적및panic. 각 레벨에는 모두가 포함됩니다 그것을 따르는 레벨. 나중에 레벨이 적을수록 더 적습니다 메시지는 로그로 전송됩니다. 기본값은통지. 참고log여기와 다른 순위가 있습니다client_min_messages. 오직 슈퍼업자는이 설정을 변경할 수 있습니다.
서버에 작성된 세부 사항을 제어합니다 기록 된 각 메시지에 대해 로그를 작성하십시오. 유효한 값은Terse, 기본값및Verbose, 각각 더 많은 필드를 추가합니다 표시된 메시지. 슈퍼업자만이이를 변경할 수 있습니다 환경.
서버 로그에 토토 핫 조건이 기록됩니다. 현재 SQL 문은 로그 항목에 포함됩니다. 지정된 심각도 이상의 메시지. 유효한 값은Debug5, Debug4, Debug3, Debug2, Debug1, info, 통지, 경고, 토토 핫, log, 치명적및panic. 기본값은토토 핫, 이는 진술을 의미합니다 토토 핫, 로그 메시지, 치명적인 토토 핫 또는 공황이있을 것입니다 기록. 실패의 로깅을 효과적으로 끕니다 문,이 매개 변수를로 설정합니다.panic. 슈퍼업자만이이를 변경할 수 있습니다 환경.
완성 된 각 문의 지속 시간이 발생합니다 명령문이 최소한 지정된 경우에 기록 된 경우 로그인 밀리 초 수. 이것을 제로 인쇄물로 설정합니다 진술 지속 시간. 마이너스 (기본값)는 비활성화됩니다 로깅 진술 지속 시간. 예를 들어, 설정하면 에게250ms그런 다음 모든 SQL 문 250ms 이상 실행되면 기록됩니다. 이것을 활성화합니다 매개 변수는 최적화되지 않은 추적에 도움이 될 수 있습니다 응용 프로그램의 쿼리. 슈퍼 사용자 만 변경할 수 있습니다 이 설정.
확장 쿼리 프로토콜, 기간을 사용하는 클라이언트의 경우 구문 분석, 바인딩 및 실행 단계가 기록됩니다 독립적으로.
참고 :이 옵션을 함께 사용할 때log_statement, 때문에 기록 된 진술의 텍스트log_statement그렇지 않을 것입니다 지속 시간 로그 메시지에서 반복됩니다. 당신이 아닌 경우 사용SyslogPID 또는 세션 ID를 사용하여를 기록하는 것이 좋습니다log_line_prefix진술 메시지를 프로세스 ID 또는 이후의 기간 메시지 세션 ID.
서버를 조용히 실행합니다. 이 매개 변수가 설정된 경우 서버는 자동으로 백그라운드에서 실행됩니다 터미널 제어는 분리됩니다. 서버 표준 출력 및 표준 토토 핫가로 리디렉션됩니다./dev/null그들에게 손실 될 것입니다. 하지 않는 한Syslog로깅이 선택되거나logging_collector활성화, 이 매개 변수를 사용하는 것은 그것을 만들기 때문에 권장하지 않습니다 토토 핫 메시지를 볼 수 없습니다. 이 매개 변수 는만 할 수 있습니다 서버 시작에서 설정해야합니다.
테이블 18-1|PostgreSQL. 로깅 출력 인 경우 로 전송됩니다.Syslog또는 Windows 'EventLog, 심각도 수준 표에 표시된대로 번역됩니다.
표 18-1. 메시지 심각도 수준
심각도 | usage | Syslog | EventLog |
---|---|---|---|
Debug1..debug5 | 연속적으로 더 많은 정보를 제공합니다 개발자의 사용. | 디버그 | 정보 |
info | 사용자 (예 : 출력)진공 말 수가 많은. | info | 정보 |
통지 | 도움이 될 수있는 정보를 제공합니다 예를 들어 사용자, 예를 들어, 장기의 잘림 통지 식별자. | 통지 | 정보 |
경고 | 가능한 문제에 대한 경고를 제공합니다 (예 :커밋거래 외부 차단하다. | 통지 | 경고 |
토토 핫 | 현재 명령을 초래 한 토토 핫를보고합니다 중단. | 경고 | 토토 핫 |
log | 관리자에게 관심있는 정보 보고서, 예 : 체크 포인트 활동. | 정보 | 정보 |
치명적 | 현재 세션을 초래 한 토토 핫를보고합니다 중단. | err | 토토 핫 |
panic | 모든 데이터베이스 세션을 일으킨 토토 핫를보고합니다 중단하려면. | Crit | 토토 핫 |
이 매개 변수를 사용하면 다양한 디버깅 출력이 가능합니다 방출. 실행 된 각 쿼리에 대해 인쇄합니다 결과 구문 분석 트리, 쿼리 재 작성자 출력 또는 실행 계획.debug_pretty_print이 디스플레이를 들여 보내십시오 더 읽기 쉽지만 훨씬 더 긴 출력 형식을 생성하려면client_min_messages또는log_min_messagesDebug1또는 실제로 보내는 것이 낮습니다 이 출력은 클라이언트 또는 서버 로그에 대한 각기. 이 매개 변수는 기본적으로 꺼져 있습니다.
서버 로그에 검사 점을 로그인합니다. 각 체크 포인트에 대한 일부 통계는 다음에 포함되어 있습니다 작성된 버퍼 수를 포함한 로그 메시지 글을 쓰는 시간. 이 매개 변수는 가능합니다 에 설정postgresql.conf파일 또는 서버 명령 줄에서. 기본값이 꺼져 있습니다.
각각의 시도 된 연결이 서버에 연결됩니다 클라이언트의 성공적인 완료뿐만 아니라 기록 입증. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령 줄. 기본값이 꺼져 있습니다.
참고 :일부 클라이언트 프토토 핫램, 유사한PSQL, 시도 비밀번호가 있는지 결정하면서 두 번 연결하십시오 필수, 따라서 복제"연결 수신"메시지는 그렇지 않습니다 반드시 문제를 나타냅니다.
이것은 서버 토토 핫에서 선을 출력합니다.log_connections그러나 세션시 종료 및 세션 기간이 포함됩니다. 기본적으로 꺼져 있습니다. 이 매개 변수는 설정할 수 있습니다 그만큼postgresql.conf파일 또는 켜짐 서버 명령 줄.
완성 된 모든 문의 지속 시간이 발생합니다 기록. 기본값은OFF. 오직 슈퍼업자는이 설정을 변경할 수 있습니다.
확장 쿼리 프로토콜, 기간을 사용하는 클라이언트의 경우 구문 분석, 바인딩 및 실행 단계가 기록됩니다 독립적으로.
참고 :이것을 설정하는 것의 차이 옵션 및 설정log_min_duration_statement엄청난log_min_duration_statement기록 할 쿼리 텍스트이지만이 옵션 그렇지 않습니다. 따라서 iflog_durationisonandlog_min_duration_statementa 양수 값, 모든 지속 시간은 기록되어 있습니다 쿼리 텍스트는 초과 진술에 대해서만 포함됩니다 임계 값. 이 동작은 유용 할 수 있습니다 고 부하 설치로 통계 수집.
기본적으로 연결 로그 메시지는 IP 만 표시합니다 연결 호스트의 주소. 이 매개 변수를 켭니다 호스트 이름의 로깅을 유발합니다. 주목하십시오 호스트 이름 해상도 설정에 따라 이에 따라 가능합니다 무시할 수없는 성과 페널티를 부과합니다. 이것 매개 변수는에서만 설정할 수 있습니다.postgresql.conf파일 또는 서버에서 명령 줄.
이것은 Aprintf
-스타일
각 토토 핫 라인의 시작 부분에서 출력되는 문자열.%문자 시작"탈출 시퀀스"아래에 설명 된 상태 정보. 인식되지 않습니다
탈출은 무시됩니다. 다른 캐릭터는 똑바로 복사됩니다
로그 라인에. 일부 탈출은 만 인식됩니다
세션 프로세스는 배경에 적용되지 않습니다
기본 서버 프로세스와 같은 프로세스. 이 매개 변수
에서만 설정할 수 있습니다.postgresql.conf파일 또는 서버에서
명령 줄. 기본값은 빈 문자열입니다.
탈출 | 효과 | 세션 만 |
---|---|---|
%u | 사용자 이름 | 예 |
%d | 데이터베이스 이름 | 예 |
%r | 원격 호스트 이름 또는 IP 주소 및 원격 포트 | 예 |
%H | 원격 호스트 이름 또는 IP 주소 | 예 |
%P | 프로세스 ID | 아니오 |
%t | 밀리 초없는 타임 스탬프 | 아니오 |
%m | 밀리 초가있는 타임 스탬프 | 아니오 |
%I | 명령 태그 : 세션 유형의 전류 명령 | 예 |
%C | 세션 ID : 아래 참조 | 아니오 |
%l | 각 세션 또는 각 세션에 대한 로그 라인 수 프로세스, 1 | 아니오 |
%s | 프로세스 시작 시간 스탬프 | 아니오 |
%V | 가상 트랜잭션 ID (backendid/localxid) | 아니오 |
%x | 트랜잭션 ID (0 할당되지 않은 경우 0) | 아니오 |
%Q | 출력은 없지만 세션을 말합니다 문자열 의이 시점에서 중지되는 프로세스; 세션 프로세스로 무시 | 아니오 |
%% | Literal% | 아니오 |
팁 :remempty 값을 설정 한 경우log_line_prefix일반적으로 마지막 캐릭터를 공간으로 만듭니다 토토 핫의 나머지 부분과 시각적 분리를 제공합니다 선. 구두점 문자도 사용할 수 있습니다.
팁 : Syslog자체 시간을 생성합니다 신분증 정보를 도장 및 프로세스하고 있으므로 아마도 가능할 것입니다 로그인하는 경우 탈출을 사용하고 싶지 않습니다Syslog.
로그 메시지가 생성되는지 여부를 제어합니다 세션은보다 길다Deadlock_timeout자물쇠를 얻으려면. 이것은 잠금인지 결정하는 데 유용합니다 대기는 성능이 저하되고 있습니다. 기본값은OFF.
통제 어떤 SQL 문을 기록합니다. 유효한 값 이다없음, DDL, mod및all. DDL모든 데이터 정의 문서를 기록하고 와 같은생성, Alter및드롭진술.mod모든 토토 핫DDL진술, 플러스 와 같은 데이터 수정 진술삽입, 업데이트, 삭제, Truncate및복사 에서. 준비, execute및설명 분석명령문도 그 경우도 기록됩니다 포함 된 명령은 적절한 유형입니다. 고객을 위해 확장 쿼리 프로토콜을 사용하면 로깅이 발생합니다 메시지를 수신하고 바인드의 값을 실행합니다 매개 변수가 포함됩니다 (임베디드 단일 쿼트 포함 마크가 두 배로 늘어 났음).
기본값은없음. 오직 슈퍼업자는이 설정을 변경할 수 있습니다.
참고 :간단한 구문이 포함 된 문 토토 핫는에 의해서도 기록되지 않습니다.log_statement=all46789_47146log_min_error_statementto토토 핫(또는 하단) 진술.
임시 파일이 언제 로그인되는지 여부를 제어합니다 삭제. 정렬 용 임시 파일을 만들 수 있습니다. 해시 및 임시 쿼리 결과. 0 로그의 값 모든 임시 파일 및 긍정적 값은 파일 만 로그입니다 지정된 숫자보다 크기가 동일합니다. 킬로 바이트의. 기본값은-1, 이 로깅을 비활성화합니다.
통나무. 같지 않은타임 존, 이 값은 클러스터 전체에 있으므로 모든 세션이 가능합니다 일관되게 타임 스탬프를보고하십시오. 기본값은알 수없는는 무엇이든 사용하는 것을 의미합니다 시스템 환경은 시간대로 지정됩니다. 보다섹션 8.5.3자세한 내용. 이 매개 변수 는만 할 수 있습니다 에서 설정해야합니다.postgresql.conf파일 또는 서버 명령 줄에.
포함CSVLOGinlog_destination목록은 편리한 방법을 제공합니다 로그 파일을 데이터베이스 테이블로 가져옵니다. 이 옵션이 방출됩니다 쉼표로 구분 된-값 형식의 로그 라인은 다음과 같습니다. 밀리 초, 사용자 이름, 데이터베이스 이름, 프로세스가있는 타임 스탬프 ID, 호스트 : 포트 번호, 세션 ID, 세션 당 또는 프로세스 라인 번호, 명령 태그, 세션 시작 시간, 가상 트랜잭션 ID, 정기 트랜잭션 ID, 토토 핫 심각도, SQL 상태 코드, 토토 핫 메시지, 토토 핫 메시지 세부 사항, 힌트, 내부 쿼리 토토 핫 (있는 경우), 토토 핫의 문자 카운트로 이어졌습니다. 위치, 토토 핫 컨텍스트, 사용자 쿼리가 토토 핫 (중이 및 활성화 된 경우log_min_error_statement), 문자 수의 토토 핫 위치, postgresql의 토토 핫 위치 소스 코드 (iflog_error_verbosityIS 설정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 정수, 위치 텍스트, 기본 키 (session_id, session_line_num) );
이 테이블에 토토 핫 파일을 가져 오려면 사용하십시오.복사명령 :
csv를 사용하여 '/full/path/toto/logfile.csv'에서 postgres_log 복사;
가져 오기를 단순화하기 위해해야 할 일이 몇 가지 있습니다. CSV 토토 핫 파일은 쉽고 자동으로 :
setlog_filename및log_rotation_age일관성을 제공하려면 토토 핫 파일에 대한 예측 가능한 이름 지정 체계. 이것은 당신을 허용합니다 파일 이름이 무엇인지 예측하고 개별 토토 핫 파일이 완료되었으므로 수입.
SETlog_rotation_size~ 0 ~ 토토 핫 파일이 만들어 지므로 크기 기반 토토 핫 회전을 비활성화합니다. 예측하기 어려운 이름.
SETlog_truncate_on_rotationtoon따라서 이전 로그 데이터는 그렇지 않습니다 같은 파일의 새 새와 혼합되어 있습니다.
위의 표 정의에는 기본 키가 포함됩니다 사양. 이것은 보호에 유용합니다 실수로 동일한 정보를 두 번 가져옵니다. 그만큼COPY명령은 모든 것을 커밋합니다 한 번에 가져 오는 데이터이므로 토토 핫가 발생합니다. 전체 가져 오기 실패. 부분 로그 파일을 가져 오면 나중에 파일이 완료되면 다시 가져 오기 1 차 키 위반으로 인해 수입이 실패합니다. 기다리다 가져 오기 전에 로그가 완료되고 닫힐 때까지. 이것 절차는 또한 실수로 수입을 방지합니다 완전히 쓰여지지 않은 부분 라인 또한 원인copy실패합니다.