Обновить Я имею в виду, могу ли я иметь несколько файлов журнала для каждой базы данных? Наверное, нет, но мне было любопытно, возможно ли что-то подобное из коробки с Postgresql, или вам нужен сторонний продукт или создание собственного приложения для этого.
Я видел с другого нить ты можешь сделать это:
ALTER DATABASE your_database_name SET log_statement = 'all';
Я просматривал онлайн-документацию и нашел эту ссылку для протоколирование
с участием:
log_filename (строка) Если logging_collector включен, этот параметр устанавливает имена файлов созданных файлов журнала. Значение обрабатывается как шаблон strftime, поэтому% -escapes можно использовать для указания изменяющихся во времени имен файлов. (Обратите внимание, что если есть какие-либо% -экраны, зависящие от часового пояса, вычисление выполняется в зоне, указанной параметром log_timezone.) Поддерживаемые% -экраны аналогичны тем, которые перечислены в спецификации strftime Open Group. Обратите внимание, что системный strftime не используется напрямую, поэтому специфичные для платформы (нестандартные) расширения не работают. По умолчанию это postgresql-% Y-% m-% d_% H% M% S.log.
Если вы указываете имя файла без экранирования, вам следует запланировать использование утилиты ротации журналов, чтобы в конечном итоге избежать заполнения всего диска. В выпусках до 8.4, если не было% escape-последовательностей, PostgreSQL добавлял эпоху времени создания нового файла журнала, но это уже не так. Если в log_destination включен вывод в формате CSV, к имени файла журнала с меткой времени будет добавлено .csv, чтобы создать имя файла для вывода в формате CSV. (Если log_filename заканчивается на .log, суффикс заменяется вместо этого.)
Этот параметр можно установить только в файле postgresql.conf или в командной строке сервера.
Бу, есть ли способ настроить ведение журнала только для конкретной базы данных на сервере, который когда-либо пробовал?
Вы можете установить глобальный log_statement=none
. Затем для конкретной базы данных:
ALTER DATABASE my_db_name set log_statement='all'
У меня также есть это в моей глобальной конфигурации, поэтому файл журнала показывает имя db и пользователя.
log_line_prefix = '< %m %d %u >'