Erlang:为什么通过 remsh 连接时看不到 error_logger:info_msg 输出?
我使用 -remsh 标志连接到正在运行的节点,并运行通常的 Common Test 健全性测试,但 shell 中没有出现任何 error_logger:info_msg 消息。为什么?
I connect to a running node with the -remsh flag, and I run my usual Common Test sanity tests, but none of the error_logger:info_msg messages appear in the shell. Why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
SASL默认事件处理程序只会将事件写入本地节点的console/tty。
通过“-remsh”连接时,您将启动第二个节点并通过
消息传递给第一个。 “nodes()”BIF 的输出可以证实这一点。
调用 error_logger 函数会将事件发送到本地“error_logger”
注册进程,它是一个gen_event服务器。您可以使用它来操纵它
error_logger:tty/1 和 error_logger:logfile/1,请参阅“Basic”中的参考文档
应用程序组,然后是“内核”应用程序,然后是“error_logger”模块。
您还可以将自己的事件处理程序添加到“error_logger”服务器,然后该服务器可以
在活动中做任何你想做的事情。我猜 error_logger:logfile/1 可能是
不过,足以满足您的目的。
-斯科特
The SASL default event handler will only write events to console/tty of the local node.
When connecting via "-remsh", you're starting a second node and communicating via
message passing to the first. The output from the "nodes()" BIF can confirm this.
Calls to the error_logger functions will send events to the local 'error_logger'
registered process, which is a gen_event server. You can manipulate it using
error_logger:tty/1 and error_logger:logfile/1, see the reference docs in the "Basic"
Application Group, then the "kernel" application, then the "error_logger" module.
You can also add your own event handler to the 'error_logger' server, which can then
do anything you want with the event. I'd guess that error_logger:logfile/1 might be
sufficient for your purposes, though.
-Scott