Re: Отключить русский в сообщениях об ошибках и логах
От | eshkinkot@gmail.com (Сергей Бурладян) |
---|---|
Тема | Re: Отключить русский в сообщениях об ошибках и логах |
Дата | |
Msg-id | 87lil38xvb.fsf@home.progtech.ru обсуждение исходный текст |
Ответы |
Re: Отключить русский в сообщениях об ошибках и логах
|
Список | 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 по дате отправления: