본문으로 건너뛰기

log_destination

버전기본값context타입
14to log to stderr onlysighupstring
15to log to stderr onlysighupstring
16to log to stderr onlysighupstring
17to log to stderr onlysighupstring
18to log to stderr onlysighupstring
19to log to stderr onlysighupstring

서버 log를 내보낼 대상을 정한다. stderr, csvlog, jsonlog, syslog를 지원하고 Windows에서는 eventlog도 쓸 수 있다.

comma로 구분해 여러 대상을 동시에 지정할 수 있으며, 기본값은 stderr 하나다. csvlogjsonlog는 log를 프로그램으로 적재해 분석하기 좋은 형식인데, 두 형식 모두 logging_collector가 켜져 있어야 생성된다. stderr, csvlog, jsonlog 중 하나라도 포함되면 현재 사용 중인 log 파일 위치를 기록한 current_logfiles 파일이 만들어져, 인스턴스가 지금 어떤 log 파일을 쓰는지 쉽게 찾을 수 있다.

syslog로 보내려면 대부분의 Unix 시스템에서 syslog daemon 설정을 함께 손봐야 한다. PostgreSQL은 LOCAL0~LOCAL7 facility로 메시지를 보낼 수 있지만(syslog_facility 참고), 기본 syslog 설정은 이런 메시지를 버리는 경우가 많아 local0.* /var/log/postgresql 같은 규칙을 daemon 설정에 추가해야 한다.

운영 노트: pgBadger 같은 분석 도구나 log 수집 파이프라인에 넣을 계획이라면 stderr에 csvlog 또는 jsonlog를 병행 지정하는 구성이 편하다. 이때 logging_collector = on이 전제 조건이다.

출처: PostgreSQL 18 문서