记录和存储 Postgres 错误?
to log and store Postgres errors?
我需要捕获调用 procedure/function、在 table 中插入记录或删除时到达的所有数据库错误。
就像每当 Postgres 数据库中发生任何错误时,都需要捕获。
谁能给我一些类似的建议或任何小例子来说明这一点。
到目前为止,我一直在使用:
引发通知或引发异常以在控制台日志中引发它。
但我想捕获这些并存储在 table(一些错误日志 table)中。
我在 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'
然后使用所有指定的详细信息创建了 table "postgres_log"。
然后尝试停止并重新启动本地 postgresql 服务器,但我无法重新启动
请多多指教。
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 NOTICE
, raise WARNING
等等; log_min_error_statement
= WARNING
这将捕获所有你 rase WARNING
, raise error
等等。
您可以设置 cron 以定期加载它...
我需要捕获调用 procedure/function、在 table 中插入记录或删除时到达的所有数据库错误。 就像每当 Postgres 数据库中发生任何错误时,都需要捕获。 谁能给我一些类似的建议或任何小例子来说明这一点。
到目前为止,我一直在使用: 引发通知或引发异常以在控制台日志中引发它。 但我想捕获这些并存储在 table(一些错误日志 table)中。
我在 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'
然后使用所有指定的详细信息创建了 table "postgres_log"。
然后尝试停止并重新启动本地 postgresql 服务器,但我无法重新启动
请多多指教。
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 NOTICE
, raise WARNING
等等; log_min_error_statement
= WARNING
这将捕获所有你 rase WARNING
, raise error
等等。
您可以设置 cron 以定期加载它...