Unicode в логах Erlang с регистратором - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь вывести некоторые Unicode в журнал с:

logger:debug("~ts", [<<"Тест"/utf8>>]).

и получить в журнале следующее:

DEFAULT FORMATTER CRASHEDDEFAULT FORMATTER CRASHEDDEFAULT FORMATTER....

Однако, если вместо этого я использую ~s в качестве строки формата, она не вылетает, а выводит версию, не поддерживающую Юникод:

debug: ТеÑ<U+0081>Ñ<U+0082>

Есть идеи? Кажется, я не могу понять, что я делаю неправильно.

Окружающая среда

Erlang/OTP 21 [erts-10.0.5] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

Конфигурация логгера от sys.config:

{kernel, [
  {logger, [
    {handler, default, logger_std_h,
      #{level => debug,
        formatter => {logger_formatter, #{single_line => true}},
        config => #{type => {file, "log/main.log"}}}},
    {handler, errors, logger_std_h,
      #{level => error,
        formatter => {logger_formatter, #{single_line => false}},
        config => #{type => {file, "log/errors.log"}}}}
  ]},
  {logger_level, debug}
]}

1 Ответ

0 голосов
/ 08 ноября 2018

Я провел целую ночь, отслеживая кого-то на канале Erlang Slack, и мы обнаружили, что именно в формататоре с одной строкой была ошибка, приводившая к сбою. Это сейчас исправлено в 21.1. После обновления проблема исчезла.

...