防止Postgresqllogging唯一的键错误,而不会影响其他错误日志logging

有什么办法可以防止Postgresqllogging由于尝试插入导致违反UNIQUE KEY约束而导致的错误?

我可以更改server_log_min指令,但是这将禁用所有的ERROR消息,而不是仅用于UNIQUE KEY约束。

不,不存在这样的方式。 pipe道日志通过| grep -v ... |缺less | grep -v ... | 过滤。

没有办法通过调整服务器上的日志logging机制来做到这一点。 你可以通过黑客入侵源代码,如果你绝对必须; 相关的代码在src / backend / access / nbtree / nbtinsert.c中,看起来像这样,在第300行左右:

 ereport(ERROR, (errcode(ERRCODE_UNIQUE_VIOLATION), errmsg("duplicate key value violates unique constraint \"%s\"", RelationGetRelationName(rel)))); 

您可以将日志级别从ERROR更改为LOG或NOTICE。