Тип: string
По умолчанию: %m [%p]
Контекст: sighup
Перезапуск: false

Строка, в стиле функции printf, которая выводится в начале каждой строки журнала сообщений. С символов % начинаются управляющие последовательности, которые заменяются статусной информацией, описанной ниже. Неизвестные управляющие последовательности игнорируются. Все остальные символы напрямую копируются в выводимую строку. Некоторые управляющие последовательности используются только для пользовательских процессов и будут игнорироваться фоновыми процессами, например основным процессом сервера. Статусная информация может быть выровнена по ширине влево или вправо указанием числа после % и перед кодом последовательности. Отрицательное число дополняет значение пробелами справа до заданной ширины, а положительное число — слева. Выравнивание может быть полезно для улучшения читаемости. Этот параметр можно задать только в файле postgresql.conf или в командной строке при запуске сервера. Со значением по умолчанию, '%m [%p] ', в журнал выводится метка времени и идентификатор процесса. СпецсимволНазначениеТолько для пользовательского процесса%aИмя приложения (application_name)да%uИмя пользователяда%dИмя базы данныхда%rИмя удалённого узла или IP-адрес, а также номер портада%hИмя удалённого узла или IP-адресда%pИдентификатор процессанет%tШтамп времени, без миллисекунднет%mШтамп времени, с миллисекундаминет%nШтамп времени, с миллисекундами (в виде времени Unix)нет%iТег команды: тип текущей команды в сессиида%eКод ошибки SQLSTATEнет%cИдентификатор сессии. Подробности ниженет%lНомер строки журнала для каждой сессии или процесса. Начинается с 1нет%sШтамп времени начала процессанет%vИдентификатор виртуальной транзакции (backendID/localXID)нет%xИдентификатор транзакции (0 если не присвоен)нет%qНичего не выводит. Непользовательские процессы останавливаются в этой точке. Игнорируется пользовательскими процессаминет%%Выводит %нет%c выводит псевдоуникальный номер сеанса, состоящий из двух 4-байтных шестнадцатеричных чисел (без ведущих нулей), разделённых точкой. Эти числа представляют время старта процесса и идентификатор процесса, поэтому %c можно использовать для экономии места при выводе этих значений. Например, для получения идентификатора сеанса из pg_stat_activity используйте запрос: SELECT to_hex(trunc(EXTRACT(EPOCH FROM backend_start))::integer) || '.' || to_hex(pid)FROM pg_stat_activity;

Последним символом в log_line_prefix лучше оставлять пробел, чтобы отделить от остальной строки. Можно использовать и символы пунктуации.

Syslog также формирует штамп времени и идентификатор процесса, поэтому вероятно нет смысла использовать соответствующие управляющие последовательности при использовании syslog.

Спецпоследовательность %q полезна для включения информации, которая существует только в контексте сеанса (обслуживающего процесса), например, имя пользователя или базы данных. Например: log_line_prefix = '%m [%p] %q%u@%d/%a '

Рекомендации [EN]

Primarily useful for providing extra information when logging to syslog or eventlog. Try "%h:%d:%u:%c %t" for this.

Комментарии