unicode - 带有记录器的 Erlang 日志中的 Unicode
问题描述
我正在尝试将一些 Unicode 输出到日志中:
logger:debug("~ts", [<<"Тест"/utf8>>]).
并在日志中获取以下内容:
DEFAULT FORMATTER CRASHEDDEFAULT FORMATTER CRASHEDDEFAULT FORMATTER....
但是,如果我改用~s
格式字符串,它不会崩溃,但会输出非 unicode 版本:
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}
]}
解决方案
我花了一整夜在 Erlang Slack 频道上与某人进行跟踪,我们发现它是单行格式化程序,特别是有一个错误导致整个事情崩溃。它现在已在 21.1 中修复。升级后问题消失了。
推荐阅读
- php - 从 DB 外观 en php laravel 获取数据
- ocaml - 在 OCaml 中查找最长的正整数
- php - 出于安全目的的 WordPress 版本更新
- ruby-on-rails - 为什么我在尝试部署博客时收到 HTTP 错误?
- java - mBluetoothGatt.getServices() 返回错误的 UUID
- python - 从具有列表元素的系列创建堆叠的熊猫系列
- html - 嵌套 div 的 z-index
- c++ - 形成算法时的未知类型名“vector”和“std”
- django - 如何打印出链接到 django 中特定模型的 ForeignKey 模型?
- javascript - 在本地机器上运行 codepen 项目的问题