将代码中的日志潜力最大化,将有很多收获 返回

C#论坛 老数据
1662

Power of logs

我想我们都同意日志是非常重要的。从一开始(对软件开发来说),日志提供了一种无价的服务:洞察您的程序的黑盒子。

他们可以讲述程序的使用情况,所有错误的报告,以及程序内部性能的一瞥。


世界上所有的远程调试器和可观察性工具都不能完全取代日志。但我是来问你你的日志能不能做更多的事。你确定你使用了最大的潜力日志吗? 一旦您的应用程序从单个用户扩展到数百个用户,然后扩展到数万个用户,获取应用程序性能信息的方式就会发生巨大变化。依赖客户的反馈会让你缺乏洞察力,因为需要询问的客户太多了。任何类型的手工工作,比如查看生产日志或手工测试生产环境,都会变得不可靠。一切都归结为自动化流程,而日志是实现这一目标的最佳工具之一。它们仍然是您从生产环境中获得的最简单的信息来源。


 在本文中,我们将介绍通过正确利用日志可以获得的6种信息。它们都非常不同,但最终提供了应用程序性能和使用的可观察性。我将分享一些我在日志记录方面的经验和最佳实践,包括结构化日志记录和查询语言的强大功能。


1. 调式

日志最常见的用法可能是调试和故障排除。如果您在生产中遇到问题,您可以做的第一件事就是查看日志。如果您的客户抱怨某些事情,日志可能是您仅有的信息。同样的道理也适用于那些不能持续繁殖的bug。


2.预测

如何将现有数据聚合成具有凝聚力的东西。这就是为什么我们需要预测。预测用户使用什么功能,使用多长时间,有多少用户,用户使用按键A而不是按键B的频率等数据。


3.性能和指标

日志是衡量性能的重要工具。它们可以提供最可靠的信息,因为数据取自真实环境。


4.警告

他们能够在已部署应用程序的丛林中自动发现问题。如果没有它们,您将不得不依赖于客户投诉 


5. 实验和A/B测试

假设您想尝试一个新特性或性能优化。就像软件一样,如果没有生产数据,就无法判断任何事情。日志是获取数据的最佳工具。


6.测试

日志提供了一种非常方便的方式,可以将断言添加到端到端测试中,否则您很难做到这一点。在进行端到端测试时,很难从正在测试的黑盒中获取信息。为了能够断言程序正在如您所期望的那样运行,您必须更改代码的某些位置,以便仅为了测试而输出数据。日志为您提供了一种避免做任何复杂事情的方便方法。作为测试的一部分,您可以使用日志并断言您期望的日志


热忱回答0