Я пытаюсь установить уровень ведения журнала в postgres на «ошибка» или вообще отключить его.Невозможно изменить или отключить журналирование после публикации
Соответствующие части 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 не работает.
Я непреднамеренно дублировал вопрос. Это действительно должно быть о подавлении сообщений INFO при запуске psql-скриптов. Не о регистрации.
Я нахожусь на OS X Mavericks. Postgres 9.3.0 устанавливается через доморощенный.
'log_statement = 'all'' собирается регистрировать (почти) каждое заявление. Вы посмотрели на 'log_min_messages (enum)'? – Joe
log_statement = 'none'; log_min_duration_statement = -1; (Http://www.postgresql.org/docs/current/static/runtime-config-logging.html). После внесения этих изменений перезагрузите 'postgresql.conf'. Например. как пользователь «postgres», выведите 'SELECT pg_reload_conf();' – bma
Спасибо Джо и bma. Я хотел написать «нет», а не «все». –