03-日志记录框架的需求
11.2 日志记录框架的需求
我们现在已经知道日志的重要性,接下来的问题是如何在应用程序中集成日志功能?让应用程序记录事件的最简单、最直接的方法是在所需位置的代码中放置一堆print语句。通过这种方式,我们可以轻松地将事件日志记录到终端控制台的标准输出中,从而完成我们的工作,但这并不能满足某些用户的需求。在很多情况下,我们还希望日志能够在以后的某个时间点能继续进行分析。因此如果我们想要将print语句的输出收集到文件中,那么必须寻找其他方法,例如使用Shell脚本输出重定向工具将输出传递给文件,这基本上是使用一组不同的工具将日志从应用程序输出到不同的目标。事实证明,这种方法存在局限性。
当不希望记录某个特定模块,却无法将其过滤或者关闭print语句时,你必须将其注释掉或者删除它们,并重新部署相关的服务。另一个限制是,当日志记录命令越来越多时,你必须编写和维护Shell脚本以收集更多输出的日志,所有这些很快就会变得笨拙且难以维护。使用print语句是一种快速但糟糕的日志记录实践,并且不是一种可扩展的解决方案。我们需要一个更好、可定制的应用程序日志记录框架。可扩展且更清晰的方案是使用专用的记录器(logger)来消除所有这些限制,这就是日志记录框架存在的原因。除了基本的日志记录需求之外,这些框架还提供了其他功能,例如达到特定文件大小时进行日志文件轮换,设置日志记录频率,每个模块的粒度日志配置等。