无法更改或关闭postgres日志记录

时间:2013-11-25 16:56:31

标签: sql database postgresql relational-database

我正在尝试将postgres中的日志记录级别设置为“error”或完全关闭它。

postgresql.conf的相关部分:

log_min_error_statement = error
log_statement = 'none'
log_min_duration_statement = -1

我在新创建的用户和数据库上尝试了这些设置无济于事。我重复重启了postgres服务器。

我也在psql中试过这些命令:

alter database mydb reset log_statement;
alter database mydb set log statement = 'none';
alter user myuser reset log_statement;
alter user myuser set log_statement = 'none';

alter database mydb reset log_min_duration_statement;
alter database mydb set log log_min_duration_statement = -1;
alter user myuser reset log_min_duration_statement;
alter user myuser set log_min_duration_statement = -1;

一些相关命令及其输出:

postgres=# select pg_reload_conf();
pg_reload_conf
----------------
t
(1 row)

postgres=# show log_min_duration_statement;
log_min_duration_statement
----------------------------
-1
(1 row)


postgres=# show log_statement;
log_statement
---------------
none
(1 row)

没有应用程序连接到数据库。只是为了确保:

postgres=# select pg_terminate_backend(pid) from pg_stat_activity where datname='mydb';

pg_terminate_backend
----------------------
(0 rows)

编辑:

我不知道客户端消息和日志不是一回事。 上面的设置完成了将log_min_error_statement设置为“ERROR”的工作。

更改client_min_messages不起作用:

image_search=> show client_min_messages;
client_min_messages
---------------------
notice
(1 row)

image_search=> set client_min_messages to 'ERROR';
SET
image_search=> show client_min_messages;
client_min_messages
---------------------
error
(1 row)

image_search=> insert into ones_counts(key, ones) values (5,5);
INSERT 0 1

该解决方案https://stackoverflow.com/a/11411109/1508077也不起作用。

我无意中重复了这个问题。它应该是在运行psql脚本时抑制INFO消息。不是关于记录。

我在OS X Mavericks上。通过自制软件安装Postgres 9.3.0。

1 个答案:

答案 0 :(得分:1)

查看您的示例,看起来您正在看到显示的insert语句的返回消息。这是日志消息,但只提供插入行的信息(如果有任何OID,受影响的行数)。

您是对的,无法在服务器端禁用INSERT 0 1消息。它是psql显示由PostgreSQL作为协议的例程部分返回的状态信息。您可以通过将STDERR从psql重定向到/ dev / null来禁用它,但这是唯一的方法。