![如何防止PostgreSQL存储过程的日志输出?](https://linux22.com/image/535511/%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2PostgreSQL%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B%E7%9A%84%E6%97%A5%E5%BF%97%E8%BE%93%E5%87%BA%EF%BC%9F.png)
我正在运行一些 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