日志级别设计与轮转:为何应用程序使用 DEBUG/INFO/WARNING/ERROR
应用日志使用不同的标签,如 DEBUG、INFO、WARNING 和 ERROR,这些标签主要作为过滤阈值。Python 的 logging 模块定义了五个级别,从 DEBUG(10,表示细粒度细节)到 CRITICAL(50,表示应用故障)。将记录器的级别设置为 INFO 意味着仅记录数值为 20 或更高的消息。这使得开发人员可以在不干扰正常运行日志的情况下嵌入详细的诊断语句,仅在需要调查时激活它们。示例应用 maintenance_agent.py 将日志输出路由到 RotatingFileHandler 和 StreamHandler,初始级别设置为 INFO,因此通常抑制 DEBUG 消息。应用中日志调用的分布反映了其设计假设:INFO 用于进度,WARNING 用于可恢复的问题,ERROR 用于真正的故障。CRITICAL 未被使用,因为该应用设计为独立处理站点特定故障。日志轮转由 RotatingFileHandler 实现,通过设置最大大小和备份数量防止日志文件无限增长。该机制确保保留日志历史的同时不占用过多磁盘空间。单独的处理器 _SiteLogCapture 收集单个站点维护运行的临时日志,用于生成报告或电子邮件,随后将其丢弃。这展示了多个处理器如何对同一日志流进行不同目的的处理:长期历史记录与临时特定用途。日志级别作为细节的垂直过滤器,而处理器选择则作为受众和目的的横向过滤器。