如何从 Erlang shell 登录到文件?



忘记了内核用户指南的日志记录章节已经有答案了。

释义 2.9 示例:在内核用户指南的日志记录章节中添加一个处理程序以将信息事件记录到文件部分:

1. 设置日志级别(默认:notice(

  • 全球:logger:set_primary_config/2
  • 仅适用于某些模块:logger:set_module_level/2

可接受的日志级别(从最不严重到最严重(:
debuginfonoticewarningerrorcriticalalertemergency

注意
Erlang shell 中的默认日志级别是notice,因此,如果在下一步中添加日志处理程序时保持原样,但设置较低的级别(例如debuginfo(,这些级别的日志将永远无法通过。

示例

logger:set_primary_config(level, debug).

2. 配置和添加日志处理程序

指定处理程序配置映射,例如:

Config = #{config => #{file => "./sample.log"}, level => debug}.

并添加处理程序:

logger:add_handler(to_file_handler, logger_std_h, Config).

logger_std_h是记录器的标准处理程序。

3.在 Erlang shell 上过滤掉低于一定级别的日志

按照上面的示例,将打印所有级别的日志。要恢复notice默认值,但仍保存文件中的每一级日志(,请使用logger:set_handler_config/3

logger:set_handler_config(default, level, notice).

正在进行中:将每个进程的事件记录到其自己的日志文件中

本模块记录了我的(部分成功(尝试;如果时间允许,将重新访问和扩展本节。我的用例是 FreeSWITCH 电话服务器会生成一个 Erlang 进程来处理呼叫,因此将它们中的每一个记录到它们各自的文件中在当时是有意义的。

最新更新