Erlang - error_logger打印中文

Erlang18,在使用error_logger打印中文的时候碰到个问题,在这里分享下,希望对大家有用。代码如下:

-module( glogger ).
-export([p/0] ).

p() ->
        error_logger:error_msg( "1 English~n" ),
        error_logger:error_msg( "2 ~p~n", ["中文"] ),
        error_logger:error_msg( "3 中文~n" ),
        error_logger:error_msg( "4 End ============!~n" ),
        ok.

运行之后的输出是:

=ERROR REPORT==== 6-Aug-2019::21:06:01 ===
1 English

=ERROR REPORT==== 6-Aug-2019::21:06:01 ===
2 [20013,25991]

可见,在第3行error_logger的Format中包含中文的时候,报错了。
但是,在tty上却可以正常输出:

C:\Users\GODWiT>erl
Eshell V7.3  (abort with ^G)
1> error_logger:error_msg( "你好,中国!~n" ).
ok

=ERROR REPORT==== 6-Aug-2019::21:09:14 ===
你好,中国!
2>

解决方案如下(将字符串转换为binary):

-module( glogger ).
-export([p/0] ).

p() ->
        error_logger:error_msg( "1 English~n" ),
        error_logger:error_msg( "2 ~p~n", ["中文"] ),
        error_logger:error_msg( unicode:characters_to_binary("3 中文~n") ),
        error_logger:error_msg( "4 End ============!~n" ),
        ok.

输出如下:

=ERROR REPORT==== 6-Aug-2019::21:34:00 ===
1 English

=ERROR REPORT==== 6-Aug-2019::21:34:00 ===
2 [20013,25991]

=ERROR REPORT==== 6-Aug-2019::21:34:00 ===
3 中文

=ERROR REPORT==== 6-Aug-2019::21:34:00 ===
4 End ============!
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 10,447评论 0 6
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 8,144评论 0 9
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 9,961评论 0 5
  • 常用模块 认识模块 什么是模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文...
    go以恒阅读 6,213评论 0 6
  • 大年初一上映的《流浪地球》 票房已超《红海行动》稳坐亚军 最近小编的周围也全在讨论流浪地球 乐滋滋的恶搞“北京第三...
    育华篮球阅读 3,434评论 0 0

友情链接更多精彩内容