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サーバを停止し、再起動してみましたが、私はお勧め親切

を再起動に失敗しました。 (あなたがログに保存するNOTICEより高いをしたい場合)

答えて

2

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

NOTICElog_min_error_statementonstderr,csvlogからlog_destinationlogging_collectorを設定します。例:log_min_error_statement = NOTICEこれはあなたのすべてをキャプチャしますrase NOTICEraise WARNINGなど。 log_min_error_statement = WARNINGこれはすべてrase WARNINGraise errorなどをキャプチャします。 LOG_DESTINATION = '標準エラー'、 'csvlog'、 'のsyslog:

その後、

+0

私はpostgresql.confの中のパラメータの下に設定している... https://www.postgresql.org/docs/current/static/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-CSVLOG

あなたは、セットアップのcronが定期的にそれをロードすることができ従ってください」、 'イベントログ' 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、app =%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

関連する問題