本文由Markdown语法编辑器编辑完成.
1. 前言
最近我负责的一个服务,在医院的服务器上线一段时间后,利用docker logs查看容器的运行日志时,发现会有一个"莫名其妙"的报错.报错的大致内容就是,celery的进程,在运行时需要记录日志时,提示找不到某一个日期的日志文件.在下面的截图中,是找不到: /app/logs/xxxx.log.2024-04-19的文件.
而且,这个日期,不是一个固定的数字,也看不出什么规律来.
不是loguru配置里面的,保留1 week内的7天.总之就是不知道怎么突然有这么个日期.
每家医院报错时的日期,都不同.有的甚至是,1个月, 2个月前的某一天.
虽然这个报错,并未影响程序的正常运行.但是,对于需要在线查看和定位问题时,会造成极大的干扰.因为,几乎每一个loguru.info()都会抛出这么一长串的报错.
因此,在某一天,我决定必须要解决掉这个bug.
我又开始了寻找病因的过程.
以下,我来介绍这个问题的原因和后来的解决方案.
2. 重现问题
程序员解决bug, 和医生看病有一个区别就是:程序员要解决这个bug, 最好是能够让这个bug,在某种情况下可以稳定复现.
这样,在修复代码后,可以通过重现这个场景,来验证这个问题,是否真得得到解决.
但医生给病人看病,总不能让病人,再从健康状态来一遍,看怎么达到这个生病的状态.
未完待续…