반응형
■ PostgreSQL의 로그(postgresql.conf) 설정하기(Ubuntu 22.04 LTS에서 apt로 설치된 환경)
▶ 로그 관련한 설정은 postgresql.conf 파일에서 설정 가능합니다.
▶ 설정을 변경하지 않았다면 기본적으로 /var/log/postgresql 밑에 로그가 쌓이게 됩니다.
▶ PostgreSQL 홈페이지의 문서를 참고 하시면 더욱 많은 정보를 얻을 수 있습니다.
- 출처 및 참고 : https://www.postgresql.org/docs/
1. 로그 디렉토리 생성
- Postgresql의 메인 디렉토리 하위에 생성하고 소유자를 변경합니다.
root@berasix:~# mkdir /var/lib/postgresql/14/main/pg_log root@berasix:~# chown postgres:postgres /var/lib/postgresql/14/main/pg_log |
2. 로그 생성 설정
1) postgresql.conf 파일의 '# - Where to Log -' 부분에서 설정 합니다.
log_destination = 'stderr' # Valid values are combinations of .... # log 생성 방식입니다. 주석을 제거합니다. # 기본은 stderr 입니다. 일반 텍스트 형태로 기록됩니다. # 그외 csvlog, syslog, eventlog 형태 등으로 설정가능합니다. logging_collector = on # Enable capturing of stderr and csvlog .... # log 파일로 수집 하겠다는 내용으로 # 주석을 제거하고 on으로 바꿔줍니다. # collector = on 안되면 로그파일이 생성되지 않습니다. log_directory = 'pg_log' # directory where log files are written ..... # 로그파일 생성 경로설정입니다. # 상대경로로 표기하며 1번에서 생성한 디렉토리입니다. log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern ..... # 로그 파일명 포멧입니다. # 기본 예제 파일명은 'postgresql-년도-월-일_시분초.log'로 생성됩니다. # 데이터베이스 재기동시 로그파일은 재시작된 시간명으로 새로 생성됩니다. log_file_mode = 0600 # creation mode for log files .... # 로그파일 권한입니다. # 기본 퍼미션은 '0600'으로 소유자만 읽기,쓰기가 가능합니다. # 보안상 '600'이하 설정을 권장합니다. log_rotation_age = 1d # Automatic rotation of logfiles will .... # 로그파일의 로테이션 주기입니다. # 기본 1일로 설정하며 매일 새로운 로그 파일이 생성됩니다. #log_rotation_size = 10MB # Automatic rotation of logfiles will .... # 로그파일 로테이션을 파일 크기로 설정 할 수도 있습니다. # 크키로 로테이션 하지 않으려면 주석 또는 0으로 설정합니다. |
3. 로그 레벨 설정
1) postgresql.conf 파일의 '# - When to Log -' & '# - What to Log -' 부분에서 설정 합니다.
log_min_messages = warning # values in order of decreasing detail: ...... # 로그에 기록되는 메시지의 수준을 결정합니다. # debug5 -> panic 일수록 중요 메시지만 기록하여 메시지 양이 줄어듭니다. log_min_error_statement = error # values in order of decreasing detail: ...... # 로그에 SQL문에 대한 로그를 남길 수 있습니다. # 에러를 발생시키는 SQL문을 서버 로그에 기록합니다. # debug5 -> panic 일수록 중요 메시지만 기록하여 메시지 양이 줄어듭니다. #log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements ...... # 명령문의 실행 지속 시간이 지정된 millisecond 이상 되면 지속 시간을 기록 # '0' : 모든 명령문의 지속 시간을 기록 # '-1' : 로깅 문장의 기간을 비활성화 # 'int' : 100ms로 설정하면 100ms 이상 실행되는 모든 SQL문이 기록됩니다. log_line_prefix = '%m [%p] %q%u@%d ' # special values: ......... # log_destination을 'stderr'로 설정했을 때, 발생하는 Log들의 접두어를 설정 # 옵션이 매우 많아 공식문서를 참조 하시기를 권장합니다. # log_line_prefix를 Default 값인 '<%m>'은 밀리세컨드로 시간을 표기합니다. # [%p] %q%u@%d 는 '[프로세스ID] 중지세션 사용자명 @데이터베이스명' 형태 log_statement = 'none' # none, ddl, mod, all # 로그파일에 Query 로그를 어느 수준으로 남길지 설정합니다. # none, ddl, mod, all 값이 들어갈 수 있고 Default는 'none'입니다. # none은 Query를 남기지 않는 것입니다. # ddl은 모든 DDL(데이터 정의 언어) 문(예: CREATE, ALTER 및 DROP)을 로깅 # mod는 모든 DDL 및 DML(데이터 수정 언어) 문 # (예: INSERT, UPDATE 및 DELETE)을 로깅합니다. # all은 실행 시간에 상관없이 모든 쿼리를 로깅합니다. # log_statement와 log_min_duration_statement를 모두 설정시에도 # 쿼리는 한번만 기록됩니다. log_timezone = 'Asia/Seoul' # 로그의 TIME-ZONE(표준 시간대)를 설정합니다. |
728x90
'DBMS' 카테고리의 다른 글
[PostgreSQL 설치와 운영] #6. DATA Directory 경로(위치) 확인 및 변경하기 (0) | 2022.10.21 |
---|---|
MSSQL - SSMS에서 SQL로 백업하기 (0) | 2022.10.20 |
[MSSQL] char/varchar, nchar/nvarchar (0) | 2022.10.19 |
[PostgreSQL 설치와 운영] #4. psql 접속과 기본 명령어 (0) | 2022.10.19 |
[PostgreSQL 설치와 운영] #3. pg_hba.conf 설정하기(원격 접속 설정) (0) | 2022.10.14 |
댓글