我的应用程序执行循环 error_logger 报告。
这些将显示在 Erlang shell 上,这是相当多的输出。
这使得在 shell 中输入非常麻烦。
鉴于以下情况,通常的处理方式是什么:
我真的很想看到这个输出
我不喜欢在我刚输入的那一行输入
如何处理?始终打开并连接第二个 shell 以供用户输入(这是启动应用程序时的额外工作,我在开发过程中经常这样做)。
我更喜欢一些易于启动的自动设置,其中所有日志记录和 sasl 消息都放在一个地方,而我的输入和返回值在另一个地方不受干扰。
作为引用,这是我开始 session 的方式:
#!/bin sh
erl +W w -boot start_sasl -config myapp -s myapp -extra "$@"
最佳答案
在内核文档 (http://erlang.org/doc/man/kernel_app.html) 中,它描述了如何设置您的应用程序环境变量以将 error_logger 打印输出重定向到一个文件或完全禁用它们。像这样的东西应该适合你:
erl +W w -boot start_sasl -kernel error_logger '{file,"/tmp/log"}' -config myapp -s myapp -extra "$@"
还有类似的选项可用于 sasl 打印输出:http://erlang.org/doc/man/sasl_app.html
关于shell - 你如何处理令人分心的 shell tty 输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5584358/