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