Re: Отключить русский в сообщениях об ошибках и логах - Mailing list pgsql-ru-general

From eshkinkot@gmail.com (Сергей Бурладян)
Subject Re: Отключить русский в сообщениях об ошибках и логах
Date
Msg-id 87lil38xvb.fsf@home.progtech.ru
Whole thread Raw
Responses Re: Отключить русский в сообщениях об ошибках и логах
List pgsql-ru-general
"Dmitry E. Oboukhov" <unera@debian.org> writes:

> кроме эстетики еще там местами поломан юникод что не вставляет
Давайте найдём и исправим :)

> 2012-05-05 12:05:06 MSK ОТМЕТКА:  неожиданный обрыв соединения с клиентом
> 2012-05-05 22:17:03 MSK ????:  ?????? ???????? ??????????? ??-?? ????????
Если это та проблема, про которую я подумал, то для её исправления нужно выставить
локаль в окружении для запуска сервера:
$ grep LANG /etc/postgresql/9.1/main/environment 
LANG = 'ru_RU.UTF-8'

Проблема в том что есть сообщения которые выводятся postmaster'ом, то есть основным
процессом, а он не связан ни с одной базой и поэтому не делает setlocale для
lc_ctype и lc_collate, но при этом он устанавливает язык сообщений lc_messages указанный
в конфигурационном файле postgresql.conf.

Далее вступает в действие библиотека gettext, которая занимается переводом, и в том числе
переводит текст из кодировки lc_messages в кодировку текущей локали, с учётом типов символов
текущей локали (lc_ctype и lc_collate) которые остались у главного процесса пустыми
что эквивалентно локали "C". В результате из UTF-8 текста Вы видите в C локали вопросики,
потому что в кодировке Latin1 нет таких кириллических символов. Такие дела :)

> надо переключить сообщения об ошибках и логи на английский, другие
> установки не трогая. куда смотреть?

$ grep lc_messages /etc/postgresql/9.1/main/postgresql.conf 
lc_messages = 'ru_RU.UTF-8'                     # locale for system error message

-- 
С уважением, Сергей Бурладян

pgsql-ru-general by date:

Previous
From: Anton Krasikov
Date:
Subject: Re: [pgsql-ru-general] Отключить русский в сообщениях об ошибках и логах
Next
From: "Dmitry E. Oboukhov"
Date:
Subject: Re: Отключить русский в сообщениях об ошибках и логах