LINUX.ORG.RU

Postgres, почему при log_destination=stderr логи пишутся в /var/log/postgresql/ ?

 , , ,


0

1

Есть Ubuntu 18.04 с postgres 9.6.

Настройки Postgres:

-[ RECORD 4 ]---------------------------
name    | log_destination
setting | stderr
-[ RECORD 28 ]--------------------------
name    | logging_collector
setting | off

Логи Postgres пишутся в /var/log/postgresql/:

postgres@sv-db-server:~$ ls -l /var/log/postgresql/
total 2308
-rw-r----- 1 postgres adm 1476867 Dec 26 17:16 postgresql-9.6-main.log
-rw-r----- 1 postgres adm  342171 Dec 20 06:25 postgresql-9.6-main.log.1
-rw-r----- 1 postgres adm   87080 Oct 19 06:25 postgresql-9.6-main.log.10.gz
-rw-r----- 1 postgres adm   23250 Dec 14 06:25 postgresql-9.6-main.log.2.gz
-rw-r----- 1 postgres adm   39443 Dec  6 06:25 postgresql-9.6-main.log.3.gz
-rw-r----- 1 postgres adm  150058 Nov 30 06:25 postgresql-9.6-main.log.4.gz
-rw-r----- 1 postgres adm   20744 Nov 22 06:25 postgresql-9.6-main.log.5.gz
-rw-r----- 1 postgres adm   24497 Nov 16 06:25 postgresql-9.6-main.log.6.gz
-rw-r----- 1 postgres adm   18624 Nov  8 06:25 postgresql-9.6-main.log.7.gz
-rw-r----- 1 postgres adm   92042 Nov  2 06:25 postgresql-9.6-main.log.8.gz
-rw-r----- 1 postgres adm   63055 Oct 25 06:25 postgresql-9.6-main.log.9.gz

Вопрос: stderr = /var/log/postgresql/ получается. Где определяется этот параметр? Почему логи пишутся именно туда? И почему имя лога у меня postgresql-9.6-main.log?

Внимание! Как поменять расположение логов я знаю, но мне просто интересно, почему stderr = /var/log/postgresql/?

★★★

Почему логи пишутся именно туда?

Потому что кто-то их забирает в stderr и пишет в var. Например, systemd.

cloun1901
()
Ответ на: комментарий от cloun1901

Посмотрел systemd-unit, не нашёл ничего подобного. Кто ещё может забирать?

iljuase ★★★
() автор топика

Вроде это не баг, а фича https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876669

The log file on disk is necessary in many configurations because only

elog() is redirected to the configured log destination, while things that print directly to stderr (most frequent offender would be errors from an archive_command) would otherwise get lost. Also, that file logs errors that occur before the logging config has been activated, like syntax errors in postgresql.conf.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.