
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
日志功能的应用在大多数软件开发项目中是非常常见的一个功能,而今天我们就通过案例分析来了解一下,服务器日志优化都有哪些方法。
1、捕获外部调用
无论什么时候你调用一个JDK之外的API,产生异常的几率都会大大增加。包括webservice,HTTP,DB,文件系统和其他JNI调用。对待每一个调用都应该认为它会产生异常(很有可能在某一个点会抛异常)。
很多情况下,外部API调用失败的原因是提供的入参是未预知的。把那些输入参数现成的记录在日志中是你修复代码的关键。
这个点上你可能会选择不记录错误日志,但是必须记录抛出的异常,这是对的。在这种情况下,只需要尽可能多的收集传递给调用的相关参数,并且把他们格式化到异常错误信息中。
只需要却表异常被捕获,并且和调用栈一起被高日志级别记录。
2、未捕获异常处理者
维斯特洛有绝境长城作为后防线,你有Thread.uncaughtExceptionHandler。所以,一定要确保你有使用它们。如果你没有设置这些处理器,你有可能会把异常抛到“野外”,如果发生这样的情况,很难控制日志记录下它们来。
找出你代码中曾经出现过大量错误,并且未被记录的,或者有关它们的记录是少量非状态日志,这是一个极大的错误。
注意,即使有未捕获异常处理器,从表面上看,你不能获得任何抛出异常线程(线程已经终止)中的变量,即便你可以获得线程对象的引用。如果你坚持一步(给线程命名),你仍然可以通过调用thread.getName()方法记录一个有意义的值。
3、不要在循环中记录日志
你经常会看到一小段代码运行在一个紧凑的循环中,并且执行一个日志操作。潜在的假设是这段代码运行的次数是有限的。
当一切执行顺利的话这样写是可以的。但是当这段代码获得一个意外的输入,循环可能无法跳出,在那种情况下你处理的不仅是一个无限循环(那已经够糟了),你正在处理的代码是无限地写入大量数据到磁盘中或者网络上。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。