2019년 9월 16일 월요일

PostgreSQL 로그(Log) 레벨 설정

PostgreSQL은 여러가지 상황에 따른 내용을 텍스트 형태의 로그(Log)로 남길 수 있다.
postgresql.conf에서 로그(Log) 레벨을 설정할 수 있다.

  • client_min_messages (enum)
    클라이언트에 보낼 메시지 수준을 제어한다.
    DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, LOG, NOTICE, WARNING, ERROR 레벨을 설정할 수 있다.
    각 레벨 순서대로 뒤 레벨의 수준을 포함한다.
    레벨이 낮을수록(아래쪽일수록) 더 적은 메시지만 전송된다.
    Default : NOTICE
  • log_min_messages (enum)
    서버 로그에 기록되는 메시지 수준을 제어한다.
    DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO, NOTICE, WARNING, ERROR, LOG, FATAL, PANIC 레벨을 설정할 수 있다.
    각 레벨 순서대로 뒤 레벨의 수준을 포함한다.
    레벨이 낮을수록(아래쪽일수록) 로그에 보내는 메시지 수가 줄어든다.
    Superuser만 설정 변경이 가능하다.
    Default : WARNING
  • log_min_error_statement (enum)
    에러를 발생시키는 SQL문을 서버 로그에 기록한다.
    DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO, NOTICE, WARNING, ERROR, LOG, FATAL, PANIC 레벨을 설정할 수 있다.
    현재 SQL문은 지정된 수준 이상의 메시지에 대한 로그 항목에 포함된다.
    Superuser만 설정 변경이 가능하다.
    Default : ERROR (error / log messages / panics / fatal error 를 일으키는 명령문이 기록된다)

※ 에러 레벨

심각도 용도syslogeventlog
DEBUG1~DEBUG5개발자를 위한 상세 정보를 제공한다.
(DEBUG5가 가장 많은 로그를 남기고, 숫자가 적어질수록 로그의 양이 줄어든다)
DEBUGINFORMATION
INFOVACUUM VERBOSE로부터 출력 같은 사용자가 암시적으로 요청한 정보를 제공한다.INFOINFORMATION
NOTICE공지 같이 사용자가 코드 개선을 위해 사용할 수 있는 유익한 정보가 제공된다.NOTICEINFORMATION
WARNING- 트랜잭션 블록 외부로 COMMIT 같은 문제의 가능성이 있는 경고를 제공한다.
- COMMAND를 멈춘 동안 해결되지 않으면 오류가 발생할 수 있다.
- 서버 및 App 단 측면에서 이슈를 조기발견하기에 좋다.
NOTICEWARNING
ERROR현재 명령이 중단된 원인이 되는 에러를 알려준다.WARNINGERROR
LOG- Checkpoint 작업 같이 관리자가 관심 있어 할 정보를 알려준다.
- 정상 작동 메시지
INFOINFORMATION
FATAL- 현재 세션이 중단된 원인이 되는 에러를 알려준다.
- 사용자가 다시 시도할 수 있으며, cluster의 다른 DB는 영향을 받지 않는다.
ERRERROR
PANIC- 모든 DB 세션이 중단된 원인이 되는 에러를 알려준다.
- 모든 사용자에게 영향을 미치는 중요한 상황이다.
CRITERROR

  • log_min_duration_statement(integer)
    명령문이 적어도 지정된 밀리 초 동안 실행되면 완료된 각 명령문의 지속 기간을 기록한다.
    • ‘0’ : 모든 명령문의 지속 시간을 기록한다.
    • ‘-1’ : 로깅 문장의 기간을 비활성화 한다.
    • ‘int’ : 만약 250ms로 설정하면 250ms 이상 실행되는 모든 SQL문이 기록된다.
    이 매개변수를 활용하면 Application에서 최적화 되지 않은 Query를 추적하는데 도움이 된다.
    Superuser만 설정 변경이 가능하다.
    확장 Query Protocol을 사용하는 클라이언트의 경우 Parse / Bind / Execute 단계의 기간은 독립적으로 기록된다.



출처
https://www.postgresql.org/docs/10/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-WHEN
https://www.postgresql.org/docs/10/runtime-config-client.html#GUC-CLIENT-MIN-MESSAGES

댓글 없음:

댓글 쓰기

화곡 어쩌라고, 굴사냥

석화찜(굴찜)을 먹으러 여의도로 갔다 그런데 재료가 모두 소진되었다고 마감이라고 한다 응? 다들 굴에 미쳤나? 굴을 찾아 헤매다 보니, 화곡까지 가게 되었다. 화곡은 처음 가본다. 첫인상은 "술집 겁네 많네" 피똥쌀때까지 마실 수 있...