记录和存储Postgres错误?

时间:2017-09-15 07:27:19

标签: postgresql error-handling compiler-errors error-logging error-log

我需要捕获在调用过程/函数,在表中插入记录或删除时到达的所有数据库错误。 类似于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服务器,但我无法重新启动

请建议。

1 个答案:

答案 0 :(得分:2)

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

logging_collector设置为on,将log_destination设置为stderr,csvlog,将log_min_error_statement设置为NOTICE(如果您想要更高,则将注意权保存在日志)。例如log_min_error_statement = NOTICE这将捕获您rase NOTICEraise WARNING等所有内容; log_min_error_statement = WARNING这会捕获您rase WARNINGraise error等所有内容。

然后,请关注 https://www.postgresql.org/docs/current/static/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-CSVLOG

你可以设置cron来定期加载它......