2
  • 有一个 gen_server 可以在其状态下保留一些敏感信息(密码等)

  • 延迟启用,

    因此,如果发生崩溃,gen_server 的状态将转储到崩溃日志中,例如:

     yyyy-mm-dd hh:mm:ss =错误报告====
    ** 通用服务器 XXX 终止
    ** 最后一条消息是...
    ** 当服务器状态 == {state, ...}
    ** 终止原因 ==

结果,明智的信息被写入日志文件。

有什么方法可以防止将 gen_server 的状态写入日志文件/崩溃转储中?

4

2 回答 2

3

您可以实现可选的format_status回调函数。这意味着每当 gen_server 崩溃时,您都有机会在记录之前根据自己的喜好格式化状态数据,例如通过删除敏感信息。

于 2015-09-14T08:45:11.510 回答
1

您可以将其添加到您的 app.config: {lager, [{error_logger_redirect, false}]} 以防止 lager 重定向错误日志。您还应该尝试捕获错误(导致 gen_server 崩溃)并以某种优雅的方式处理它。我们的您可以保留密码并让它崩溃。

于 2015-09-14T07:10:44.893 回答