如何从 Erlang shell 记录到一个文件?
How to log to a file from the Erlang shell?
一直忘记 Logging chapter of the the Kernel User's Guide 已经有了答案。
释义内核用户指南日志记录章节中的 2.9 Example: Add a handler to log info events to file 部分:
1。设置日志级别(默认:notice
)
已接受 log levels(从最不严重到最严重):
debug
、info
、notice
、warning
、error
、critical
、alert
、emergency
注:
Erlang shell 中的默认日志级别是 notice
,因此如果您保持原样,但在添加时设置较低的级别(例如 debug
或 info
)下一步的log handler,那几层log永远打不通。
例子:
logger:set_primary_config(level, debug).
2。配置和添加日志处理程序
指定handler configuration map,例如:
Config = #{config => #{file => "./sample.log"}, level => debug}.
logger:add_handler(to_file_handler, logger_std_h, Config).
logger_std_h
is the standard handler for Logger.
3。过滤掉 Erlang 上特定级别以下的日志 shell
按照上面的例子,打印各级日志。要恢复 notice
默认值,但仍将每个级别的日志保存在文件中),请使用 logger:set_handler_config/3
.
logger:set_handler_config(default, level, notice).
正在进行的工作:将每个进程的事件记录到它们自己的日志文件中
This module 记录我的(部分成功的)尝试;将在时间允许的情况下重新访问并扩展此部分。我的用例是 FreeSWITCH phone 服务器会生成一个 Erlang 进程来处理调用,因此将它们中的每一个记录到它们自己的文件中在当时是有意义的。
一直忘记 Logging chapter of the the Kernel User's Guide 已经有了答案。
释义内核用户指南日志记录章节中的 2.9 Example: Add a handler to log info events to file 部分:
1。设置日志级别(默认:notice
)
已接受 log levels(从最不严重到最严重):
debug
、info
、notice
、warning
、error
、critical
、alert
、emergency
注:
Erlang shell 中的默认日志级别是 notice
,因此如果您保持原样,但在添加时设置较低的级别(例如 debug
或 info
)下一步的log handler,那几层log永远打不通。
例子:
logger:set_primary_config(level, debug).
2。配置和添加日志处理程序
指定handler configuration map,例如:
Config = #{config => #{file => "./sample.log"}, level => debug}.
logger:add_handler(to_file_handler, logger_std_h, Config).
logger_std_h
is the standard handler for Logger.
3。过滤掉 Erlang 上特定级别以下的日志 shell
按照上面的例子,打印各级日志。要恢复 notice
默认值,但仍将每个级别的日志保存在文件中),请使用 logger:set_handler_config/3
.
logger:set_handler_config(default, level, notice).
正在进行的工作:将每个进程的事件记录到它们自己的日志文件中
This module 记录我的(部分成功的)尝试;将在时间允许的情况下重新访问并扩展此部分。我的用例是 FreeSWITCH phone 服务器会生成一个 Erlang 进程来处理调用,因此将它们中的每一个记录到它们自己的文件中在当时是有意义的。