#193 closed баг (fixed)
Лог программы невозможно прочитать
Reported by: | alx | Owned by: | dimag |
---|---|---|---|
Priority: | minor | Milestone: | 2 очередь |
Component: | ПО MC04-Dispatcher. Пульт диспетчера/техника | Keywords: | |
Cc: | san |
Description
Лог программы невозможно прочитать:
Исправлению подлежит при принятии отрицательного решения по #162 (то есть при решении не убирать лог из программы).
Attachments (1)
Change History (5)
by , 9 years ago
comment:1 by , 9 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
comment:2 by , 9 years ago
Resolution: | invalid |
---|---|
Status: | closed → reopened |
То, что Вам не удалось воспроизвести проблему, не означает, что тикет invalid.
Проблема-то есть, она никуда не делась. И надо не тикет закрывать а думать над тем, как ее воспроизвести и как найти причину проблемы. Если нужна какая-то помощь, я готов в меру сил поучаствовать в этой работе. Вчера, бегло просмотрев код, я не смог найти причину. Надо работать над проблемой дальше.
comment:3 by , 9 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Причину проблемы удалось найти.
Причина была в том, что ProgLogger::info() ожидает на своем входе текст, закодированный в Windows-1251, который он потом явным образом перекодирует в юникод. Де-факто же он получал текст уже в юникоде, так как компилятору (точнее, препроцессору) была сообщена кодировка исходных текстов (input-charset), но не была задана кодировка исполнения (exec-charset), которая по умолчанию - UTF-8. В результате компилятор все строковые литералы, которые и формируют лог, автоматически перекодировал в UTF-8. Установка exec-charset в CP1251 проблемы отображения логи решила.
Я запускал программу под Ubuntu, в версии r229 и не смог воспроизвести данную ошибку