logging_collector изначально стоит в off, то ничего менять не нужно.Должны быть:
logging_collector = on # Включает сбор логов
log_rotation_age = 1d # Создавать новый файл каждые сутки
log_rotation_size = 100MB # ИЛИ создавать новый файл при достижении 100МБ
log_truncate_on_rotation = on # разрешает перезаписывать старые файлы
Настройки изменяются в файле postgresql.conf.
Узнать расположение файла можно запросом вида show config_file; к базе данных.
После изменения настроек и сохранения файла нужно:
- Выполнить на любой БД запрос
SELECT pg_reload_conf(); - Выполнить на любой БД запрос
SHOW log_truncate_on_rotation;Должен показать on. - Удалить лишние файлы логов из папки data/log.
Узнать расположение папкиdataможно запросом видаshow data_directory;к базе данных
Как правило, удаляются все файлы старше 7 дней по дате изменения.
В Linux это можно сделать с помощью find.
Пример команды:
find . -name "postgresql-*.log" -mtime +7 -delete
. - искать в текущей директории (в нашем случае мы должны находиться в папке с логами)
-name "postgresql-*.log" - выбирать только файлы по маске (не обязательно, в папке с логами других файлов не должно быть)
-mtime +7 - выбирать только файлы с датой изменения старше 7 дней от текущего момента
-delete - удалить выбранные файлы (вместо этого предварительно можно использовать -print для вывода списка файлов)