Пример настройки протоколирования
Настройки qhb.conf:
- Включить протоколирование: logging_collector = on;
- Включить протоколирование в файлы журналов: log_directory = '/u01/db/log` каталог журналов должен быть определен по месту. Может быть абсолютный путь, но можно указать и вариант относительного пути ./log/;
- Установить уровень протоколирования: log_min_messages = info или другой подходящий;
- Параметр на сам факт протоколирования в систему: log_connections = true;
- Включить протоколирование ошибочных запросов: log_min_error_statement=info;
- Включить протоколирование имени хоста подключения: log_hostname = true — желательно протоколировать его в дополнение к IP-адресу по причинам безопасности или дальнейшего устранения неполадок;
- Включить протоколирование действий по репликации: log_replication_commands = true. Обязательно для установки кластеров высокой доступности;
- Включить протоколирование операций на СУБД (для безопасности):
log_statement = 'none' # none, ddl, mod, all; - Сформировать шаблон строки журнала для записи приведенных выше параметров:
log_line_prefix = '%m [%p] ' # специальные значения:
# %a = имя приложения
# %u = имя пользователя
# %d = имя базы данных
# %r = удаленный хост и порт
# %h = удаленный хост
# %p = идентификатор процесса
# %t = временная метка без миллисекунд
# %m = временная метка с миллисекундами
# %n = временная метка с миллисекундами (в виде эпохи Unix)
# %i = тег команды
# %e = статус SQL
# %c = идентификатор сеанса
# %l = номер строки сеанса
# %s = временная метка начала сеанса
# %v = виртуальный идентификатор транзакции
# %x = идентификатор транзакции (0 если такового нет)
# %q = остановиться здесь во внесеансовых
# процессах
# %% = '%'
# например, '<%u%%%d> '
Собранный пример строки с форматом протоколирования:
%m [%p]: [%l] [txid=%x] user=%u, db=%d, app%a, client=%r