首页 > 解决方案 > 如何从 Erlang shell 登录到文件?

问题描述

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

标签: erlangerlang-shell

解决方案


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

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

接受的日志级别(从最不严重到最严重):
debug, info, notice, warning, error, critical, alert,emergency

注意
Erlang shell 中默认的日志级别是notice,所以如果您保持原样,但在下一步添加日志处理程序时设置较低的级别(例如debug或),则该级别的日志将永远无法通过。info

示例

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是 Logger 的标准处理程序。

3. Erlang shell 过滤掉一定级别以下的日志

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

logger:set_handler_config(default, level, notice).

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

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


推荐阅读