logging - erlang logger 不显示进度报告
问题描述
我是日志记录的新手,我在 erlang/OTP 21 中尝试了 erlang new logger API,所以我编写了一个简单的代码来创建自定义处理程序:
-module(loggertest).
-export([start/0,doError/2]).
%%%%%%
start() ->
HandlerFile="/Erlang/informations.log",
HandlerConfig=# {max_no_bytes=>10*1024*1024,
max_no_files=>1,
file=>HandlerFile},
FormatConfig=#{single_line=>false,
legacy_header=>true},
TheHandler=#{level=>info,
config=>HandlerConfig,
formatter=> {logger_formatter,FormatConfig}},
logger:set_handler_config(default,level,error),
logger:set_primary_config(level,info),
logger:add_handler(the_handler,logger_std_h,TheHandler).
%%%%%%
doError(X,Y) ->
logger:error(#{x=X,y=Y}).
所以我编译它并调用
loggertest:start().
loggertest:doError(4,5).
我检查了“informations.log”文件,发现只有错误报告
x=4
y=5
并且有任何进度报告,以及何时删除
logger:set_handler_config(default,level,error)
我在终端中有进度报告,所以我一无所知:对 的调用logger:set_handler_config/3
将停止默认记录器以捕获优于错误事件的事件,因此进度报告(信息事件)将永远不会由默认记录器处理,默认记录器会将它们放在格式化后的标准 I/O,在这里我希望这些报告将由 TheHandler 处理,因为它具有信息级别但没有发生任何事情,为什么?
解决方案
推荐阅读
- react-native - 如何获取 Scrollview 项目 React-native 的索引?
- vb.net - 为什么我收到“无法将列表视图转换为整数”的错误消息。?
- swift - RxSwift:compactMap 从未执行
- aws-amplify-cli - 放大 CLI:推送操作期间发生错误:无法读取 null 的属性“扩展”
- unity3d - Unity 说我的密钥库密码错误
- java - 如何根据构造函数中设置的 ID 返回某个对象?
- python - 将多个没有类名的html标签解析为不同的变量
- c - 分叉程序请查看
- python - python pandas:为什么我不能在同一个 read_csv 语句中同时使用 index_col 和 usecols ?升值错误
- android - 如何在不要求用户第一次在浏览器或应用程序之间进行选择的情况下从链接打开 Android 应用程序