1

프로 시저/함수를 호출하거나 테이블에 레코드를 삽입하거나 삭제하는 동안 도착한 모든 데이터베이스 오류를 캡처해야한다는 요구 사항이 있습니다. Postgres 데이터베이스에서 오류가 발생할 때마다 캡처해야합니다. 어느 누구도 나에게 그 같은 작은 표본을 제안 할 수 있습니까?에 Postgres 오류를 기록하고 저장 하시겠습니까?

지금까지 사용 해본 내용은 다음과 같습니다. 콘솔 로그에서 발생 시키려면 예외를 발생 시키거나 예외를 발생 시키십시오. 그러나 나는 이것을 캡쳐하여 테이블 (일부 오류 로그 테이블)에 저장하려고합니다. 나는 postgresql.conf의에서 매개 변수 아래에 설정 한

:

log_destination = 'stderr','csvlog','syslog','eventlog' 
logging_collector = on 
log_filename = 'tst_log_err-%a.log' 
client_min_messages = debug5 
log_min_messages = debug5 
log_min_error_statement = debug5 
log_min_duration_statement = 300ms 
log_checkpoints = on 
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h ' 
log_lock_waits = on 
log_statement = 'all' 

다음 모든 지정된 세부 테이블 "postgres_log"를 만들었습니다. 다음

그리고

는 중지 및 지역 PostgreSQL 서버를 다시 시작하려하지만 난

이 친절하게 제안 다시 시작하는 데 실패있어. (당신이 로그에 저장하는주의 사항 다음 더 원하는 경우)

답변

2

https://www.postgresql.org/docs/current/static/runtime-config-logging.html

log_destinationlog_min_error_statementNOTICE에, stderr,csvlog에, onlogging_collector을 설정합니다. 예 : log_min_error_statement = NOTICE 이것은 모두 rase NOTICE, raise WARNING 등을 캡처합니다. log_min_error_statement = WARNING 이것은 모두 rase WARNING, raise error 등을 캡처합니다. 의 log_destination = '열려진', 'csvlog', '시스템 로그 :

다음,

+0

나는 postgresql.conf의에서 매개 변수 아래에 설정 한 ... https://www.postgresql.org/docs/current/static/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-CSVLOG

당신이 설정 크론은 주기적으로로드 할 수 있습니다 따라 ''이벤트 로그 ' logging_collector = 에 LOG_FILENAME ='tst_log_err- % a.log ' client_min_messages = debug5 log_min_messages = debug5 log_min_error_statement = debug5 log_min_duration_statement = 300ms를 log_checkpoints = on log_line_prefix = '% t [% p] : [% l-1] 사용자 = % u, db = % d, 앱 = % a 클라이언트 = % h' log_lock_waits = on log_statement = '모두' 그리고 지정한 세부 사항이 모두 포함 된 테이블 "postgres_log"가 생성되었습니다. 그리고 나서 로컬 postgresql 서버를 중지하고 다시 시작하려고했지만 다시 시작하지 못했습니다. – Pooja

+0

아마도 인용 오류가 도움이 될까요? ... –

+0

다시 시작한 후 로그인 할 때 오류가 발생합니다. 서버에 연결할 수 없습니다. 연결 거부 됨 (0x0000274D/10061) 서버가 "localhost"(127.0.0.1) 호스트에서 실행되고 포트 5432에서 TCP/IP 연결을 수락합니까? 서버에 연결할 수 없습니다. 연결 거부 됨 (0x0000274D/10061) 서버가 호스트 "localhost"(:: 1)에서 실행되고 포트 5432에서 TCP/IP 연결을 수락합니까? – Pooja