Created attachment 6791 [details] Кириллические строки в логах /var/log/ Доброго времени суток! Из-за логгирования на русском, grep воспринимает текстовый лог как бинарный # grep -rHi . /var/log|grep 'Двоичный файл'|grep 'messages\|warnings' Двоичный файл /var/log/daemons/warnings совпадает Двоичный файл /var/log/syslog/messages совпадает Двоичный файл /var/log/user/warnings совпадает Причина кроется вот в чём: если приложение выбрасывает в лог сообщение на русском, то в словах вместо некоторых кириллических символов отображается не символ, а его код. И если лог содержит такие сообщения, то grep воспринимает лог как бинарный файл. Опция --text для grep, поможет отобразить текстовый лог, но кириллические строки либо плохо читаемы, либо нечитабельны совсем. Эти логи не учитывались и были отброшены сразу как бинарные: # file /var/log/{sa/sa06,wtmp,lastlog} /var/log/sa/sa06: data /var/log/wtmp: data /var/log/lastlog: data /var/log/sa* - через sar /var/log/wtmp - utmpdump или last /var/log/lastlog - lastlog Во вложении grep-нутые кириллические строки из логов, - так как они отображаются при просмотре.
Предложение: Хорошо бы всё логгировать только на английском.
(In reply to comment #0) > Из-за логгирования на русском, grep воспринимает текстовый лог как бинарный Не надо логгировать на русском. (In reply to comment #1) > Предложение: > Хорошо бы всё логгировать только на английском. Это точно предложение к grep'у?
Насколько помнится, распознавание байтов как символов языка регулируется локалью. Просто установите нужную локаль и grep будет понимать русский. Что конечно не отменяет того, что не нужно протоколировать на национальных языках.
Или локаль, или grep -a.
(В ответ на комментарий №2) > (In reply to comment #0) > > Из-за логгирования на русском, grep воспринимает текстовый лог как бинарный > > Не надо логгировать на русском. Согласен. > (In reply to comment #1) > > Предложение: > > Хорошо бы всё логгировать только на английском. > > Это точно предложение к grep'у? Согласен: Надо перевешивать на pulseaudio и gdm2.20 В лог кириллицу gdm-binary выплёвывает: # grep -rHi . --text /var/log|grep --text '202ал' /var/log/daemons/warnings:May 2 14:14:00 comp gdm-binary[2089]: WARNING: gdm_slave_xioerror_handler: Фа�\202ал�\214на�\217 о�\210ибка X - �\237е�\200езап�\203�\201к :0 $ rpm -qf $(which gdm-binary) gdm2.20-2.20.8-alt10 С пульсаудией вместе, - из того же лога во вложении: /var/log/syslog/messages:May 2 13:44:44 comp pulseaudio[2282]: [pulseaudio] authkey.c: Failed to open cookie file '/home/user/.config/pulse/cookie': �\235е�\202 �\202акого �\204айла или ка�\202алога
(В ответ на комментарий №3) > Насколько помнится, распознавание байтов как символов языка регулируется > локалью. Просто установите нужную локаль и grep будет понимать русский. Не будет :) Оно уже в логе. Текстовый вид: �\202акого hex-код: D1 5C 32 30 32 D0 B0 D0 BA D0 BE D0 B3 D0 BE Кириллические символы двухбайтные. В слове: такого (или Т ?) первый байт первого символа - D1 Вместо второго байта, последовательность байт: 5C 32 30 32 \202 > Что конечно не отменяет того, что не нужно протоколировать на национальных > языках. :) А это да.
(В ответ на комментарий №4) > Или локаль, или grep -a. Так и удалось рекурсивно грепнуть.
(В ответ на комментарий №5) > (В ответ на комментарий №2) > > (In reply to comment #0) > > ... > > > (In reply to comment #1) > > > Предложение: > > > Хорошо бы всё логгировать только на английском. > > > > Это точно предложение к grep'у? > > Согласен: > Надо перевешивать на pulseaudio и gdm2.20 > > В лог кириллицу gdm-binary выплёвывает: > > # grep -rHi . --text /var/log|grep --text '202ал' > /var/log/daemons/warnings:May 2 14:14:00 comp gdm-binary[2089]: WARNING: > gdm_slave_xioerror_handler: Фа�\202ал�\214на�\217 о�\210ибка X - > �\237е�\200езап�\203�\201к :0 > > $ rpm -qf $(which gdm-binary) > gdm2.20-2.20.8-alt10 > > С пульсаудией вместе, - из того же лога во вложении: > > /var/log/syslog/messages:May 2 13:44:44 comp pulseaudio[2282]: [pulseaudio] > authkey.c: Failed to open cookie file '/home/user/.config/pulse/cookie': > �\235е�\202 �\202акого �\204айла или ка�\202алога Сейчас в системе alsa, а не pulseaudio, поэтому не соображу, могу только догадываться, что для пульсаудии вешать багу надо на пакет pulseaudio-daemon.
Посмотрел на то что отрепортил, как бы со стороны: https://forum.altlinux.org/index.php?topic=36322.msg292502#msg292502