如何防止PostgreSQL存储过程的日志输出?

如何防止PostgreSQL存储过程的日志输出?

我正在运行一些 PostgreSQL 脚本,这些脚本过去会产生过多的日志输出。我通过将--quiet参数传递给 psql 命令行客户端并添加SET client_min_messages='warning';到 SQL 脚本的开头,设法将大部分输出减少到可接受的数量。

这对于大多数基本语句(如 SELECT、INSERT、UPDATE 等)都很有效。但是,当我使用例如在脚本中调用存储函数时SELECT my_func(my_args);,仍然会有类似于以下内容的日志输出

my_func

(这里省略了一个带有多个“-”的长句子,因为 SF 认为这是一个标题)

(1 row)

输出毫无用处;它只会让我在脚本运行后不得不向上滚动很长一段距离,并且也使得发现任何相关的错误输出变得更加困难。

我怎样才能摆脱它?

答案1

由于您似乎正在从 psql 运行脚本,因此您可以执行

copy ( select my_func(my_args) ) to stdout;

甚至

\copy ( select my_func(my_args) ) to /dev/null

您可以在 psql 命令行上指定“-A -t”以将所有查询语句的输出全局安静地设置为一行。

答案2

任何一个

\o /dev/null
SELECT my_func(my_args);

或者

SELECT my_func(my_args) \g /dev/null

相关内容