登录日志级别的最佳做法

时间:2009-12-10 05:20:42

标签: logging

通常,可以切换日志级别以获得不同级别的详细日志。通常,最低级别的日志通常可以帮助人们识别代码的哪个区域可能是错误的。为了进一步调试,通常会增加调试级别以获取更多信息。但是,这会导致与问题无关的不必要的大量日志。

任务是:这个问题的最佳做法是什么?定义另一个维度的日志?按逻辑区域,方法还是其他?

编辑: 这来自一个真实的项目,其中应用程序部署在客户环境中,当出现问题时,日志是他们发送的用于调试的东西,他们肯定会讨厌发送大量日志,或者自己进行分析/解析:通常他们是非技术客户。我想这与在这种情况下如何管理日志记录效率的问题有关。如果打开另一个帖子更合适,请留言。感谢。

3 个答案:

答案 0 :(得分:3)

您可以为应用程序的不同部分使用不同的侦听器。但是你可以使用的最好的东西是Microsoft Log Parser,它使你能够在你的日志文件上运行查询,例如:您可以对文本日志文件中的数据执行SELECT。看看它,它确实是一个非常强大的工具。

答案 1 :(得分:2)

如果你有大量的日志,你可以按功能区域分开它们,这就是NHibernate使用log4net所做的事情。例如:

NHiberate(root)
NHibernate.Loader
NHibernate.Cache
NHiberante.SQL
...

同样使用像log4j/net这样的好库,您可以使用滚动日志文件追加器,您可以轻松配置它以不填满您的硬盘驱动器。例如,您可以将其配置为生成10MB的日志文件,然后滚动到另一个文件最多10次,然后返回到第一个文件并覆盖它。

答案 2 :(得分:1)

您已经提到了按级别登录。以下是java.util.logging包提供的logging levels,它非常有效地根据需要控制日志消息量(趋势与调试)。

日志记录的另一个维度是按事件记录并将这些事件分类为某种相当浅的层次结构。有关使用Scribe和Hadoop的更多信息,请查看logging for the purposes of analysis上的这篇文章。