七个处理日志(Logging)的好技巧
在web应用程序中,日志是很重要的,能够知道正在发生什么,以及进行性能(performance)分析和意外事情的分析,那么怎样做,才能让你的日志有用途呢?
1. 产品状态下不应该有debug消息。
我看到了一次又一次的在产品中启动调试日志,这可能是一些开发者无意中检查调试日志记录时候的配置,启用调试能够显著降低你应用程序的运行速度,并且使得在去分析日志变得很困难, 请确保在部署的时候,最好是一些脚本,能够在产品阶段禁止debug信息。
2. 关注您的日志
有些公司在其产品系统中有着良好的日志记录,但不关注他们的日志。关注您的日志,能够发现应用程序中的问题(错误,性能,内存), 并解决这些问题 ,那么基本上你应该没有记录什么已知的错误。
3.使用正确的日志级别
写日志代码的开发者经常不知道那种日志级别在产品阶段使用,有一个文件应该能够解释开发者应该使用那一个日志级别。例如SEVERE应该只用于技术问题,需要立即采取行动。 ERROR应当用于错误,需要有人研究和解决 ,如:没有得到数据库连接、低资源或不集成的点。 这些对你的公司和应用是个规范。
4. 不要仅仅在本机记录日志
如果您的服务器有重大问题,如资源问题,它往往无法登录,你就不能找到您的日志,也不能找到问题,日志应该记录在一个网路驱动上,并复制到另外一台主机或者网络驱动,比如SysLog。一个好的解决方法是使用传播工具写入到一个网络多播组中,这也方便监测(见“可扩展的互联网体系结构” ) 。
5. 监控您的日志
类似“关注你的日志”,你应该安装一个监测解决方案,能够在你的日志中查看SERVRE条目、ERROR条目,异常和其他东西,通过传播,能够很容易监控,一个好的方法是能够分类和计数异常,然后去做一些关于严重的和最常见的处理。
6. 使用易读的格式
开发者往往不太考虑在产品阶段的日志输出,:这将导致难以阅读的日志文件。 看看下面有一个易读的输出:
[8/14/06 8:22:14:653 CDT] 0000a SSLComponent I CWPKI00001I: SSL service not available [ 8/14/06 8:22:14:653的CDT ] 0000a SSLComponentCWPKI00001I :
[8/14/06 8:22:14:813 CDT] 0000a WSKeyStore W CWPKI0041W: One or more key [ 8/14/06 8:22:14:813的CDT ] 0000a WSKeyStore W CWPKI0041W :
这样的格式更容易快速扫描日志,对比一下你的日志输出。
7. 在你的日志中使用错误代码
每个导致日志输出的原因应该有一个独特的错误代码。如果没有一个独特的错误代码是很难在您的源代码中找到原因。错误代码也更容易计数和分类, 使日志报表更容易展示。
想了解更多信息吗? 在web站点上也有一些很好的关于日志的书,象: Michael T. Nygard 写的《Release It!》(真的是非常好的一本书)和Theo Schlossnagle著作的《Scalable Internet Architectures》。
Tags: 技巧, 日志