有一个 gen_server 可以在其状态下保留一些敏感信息(密码等)
延迟启用,
因此,如果发生崩溃,gen_server 的状态将转储到崩溃日志中,例如:
yyyy-mm-dd hh:mm:ss =错误报告==== ** 通用服务器 XXX 终止 ** 最后一条消息是... ** 当服务器状态 == {state, ...} ** 终止原因 ==
结果,明智的信息被写入日志文件。
有什么方法可以防止将 gen_server 的状态写入日志文件/崩溃转储中?
有一个 gen_server 可以在其状态下保留一些敏感信息(密码等)
延迟启用,
因此,如果发生崩溃,gen_server 的状态将转储到崩溃日志中,例如:
yyyy-mm-dd hh:mm:ss =错误报告==== ** 通用服务器 XXX 终止 ** 最后一条消息是... ** 当服务器状态 == {state, ...} ** 终止原因 ==
结果,明智的信息被写入日志文件。
有什么方法可以防止将 gen_server 的状态写入日志文件/崩溃转储中?
您可以实现可选的format_status
回调函数。这意味着每当 gen_server 崩溃时,您都有机会在记录之前根据自己的喜好格式化状态数据,例如通过删除敏感信息。
您可以将其添加到您的 app.config:
{lager, [{error_logger_redirect, false}]}
以防止 lager 重定向错误日志。您还应该尝试捕获错误(导致 gen_server 崩溃)并以某种优雅的方式处理它。我们的您可以保留密码并让它崩溃。