Eon*_*nil 3 postgresql logs plpgsql
为了调试目的,我在函数中放置了很多 RAISE NOTICE。我认为这会影响性能,所以应该在生产环境中删除它们。有没有办法仅在特定条件下选择退出这些日志记录/断言功能?
您可以将它们包装在IF测试自定义配置变量的子句中。这会起作用,但它有点冗长,而且 PL/PgSQL 中的每个语句都有成本。
我怀疑您最好降低RAISE消息中的日志级别,以便您登录默认情况下DEBUG不会捕获的级别log_min_messages。这样你就可以通过更改client_min_messages或打开它log_min_messages。
请参阅RAISE语句的扩展形式,例如:
RAISE DEBUG USING MESSAGE = 'TheMessage';
Run Code Online (Sandbox Code Playgroud)
请参阅该RAISE声明的文档。
或者,您可以保留消息RAISE NOTICE并提高日志级别,但这可能会隐藏您希望在日志中看到的其他信息。最好最初以较低的优先级登录。
只要通知没有进行大量昂贵的字符串格式化或被大量调用,我怀疑当日志级别抑制记录到文件/客户端时,它们的性能影响不会有太大问题。
| 归档时间: |
|
| 查看次数: |
1879 次 |
| 最近记录: |