"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
--
С уважением, Сергей Бурладян