Logging 一个人应该记录什么?

Logging 一个人应该记录什么?,logging,erlang,Logging,Erlang,我知道这似乎是一个愚蠢的问题,但我应该记录什么?我有一个分布式的专用缓存,支持发布/订阅,并且正在使用lager进行日志记录 我在生命周期中使用信息日志级别—服务器启动等。但我发现自己在几乎每个导出的函数上都设置了调试级别的日志行。。。以防我需要它们。。。我正在对可恢复的故障项使用警告级别,例如节点关闭 我在谷歌上搜索了日志记录最佳实践,但我发现更多的是关于JVM,而不是日志记录最佳实践 是否有Erlang日志记录最佳实践?或者一些可以分享的经验教训 我所看到的日志记录最佳实践似乎是以Java和

我知道这似乎是一个愚蠢的问题,但我应该记录什么?我有一个分布式的专用缓存,支持发布/订阅,并且正在使用lager进行日志记录

我在生命周期中使用信息日志级别—服务器启动等。但我发现自己在几乎每个导出的函数上都设置了调试级别的日志行。。。以防我需要它们。。。我正在对可恢复的故障项使用警告级别,例如节点关闭

我在谷歌上搜索了日志记录最佳实践,但我发现更多的是关于JVM,而不是日志记录最佳实践

是否有Erlang日志记录最佳实践?或者一些可以分享的经验教训


我所看到的日志记录最佳实践似乎是以Java和#/.Net范例为导向的。我在问,鉴于大量使用OTP和Erlang/函数式习惯用法,关于日志记录有什么建议?我应该记录每个handle_X子句等吗?

我会使用调试日志,以防它们对服务器管理员(而不是Erlang开发人员)查明问题有用。我认为对于开发人员来说,内置的调试和跟踪功能要强大得多。
请看一看redbug,它是库的一部分,可以让您安全地调试在线Erlang系统

我希望这一点不会被忽视。我很好奇人们会怎么说。不过,在邮件列表上获得更完整的响应可能会更容易。这不是Erlang特有的,而是关于记录内容的一般性问题。我认为这将是更合适的在我的意思是这是Erlang的具体。我将对其进行编辑以使其更清晰。但实际上,我看不到任何特定于erlang的日志记录问题。它们都很一般。就我个人而言,我倾向于使用下一个经验法则(但是不可能有任何经验法则,这取决于您的特定应用程序)。首先,我尽可能多地记录日志。所有问题,可以帮助我调试或操作。然后,若日志数量变得巨大,我会尝试减少无用的消息,并用监控系统可以处理的类似数字指标来代替它。我同意Viacheslav的观点:在您更新的问题中并没有任何Erlang特定的内容。Java和.NET具有启动、公共功能和可恢复异常的服务器。