故事是有一个日志文件将按一定间隔重复旋转。我需要在Python中编写一个小工具,即使在旋转之后也始终在该文件中打印新日志。 如何判断旧日志文件是否已重命名,并在Python中打开新日志文件?
答案 0 :(得分:0)
如果即使在旋转后填充相同的日志文件,也试图破坏日志轮换的目的。进行日志轮换的原因之一是不要过多地增加日志大小,这样我们就不必在打开\搜索日志信息时遇到困难,而且您的情况正在破坏此目的。如果你想这样做,那么你可以检查旋转后保存日志文件的文件夹,你可以找到最新的旋转日志文件,说最新的旋转日志文件名是application.log.x(其中x是一个数字,即1,2,3,..)然后在对日志文件执行写操作之前,需要再次检查日志目录以检查最新的旋转文件是什么,如果有一个文件晚于application.log.x则表示您正在编写的日志文件已旋转,您可以将日志写入名为application.log.x + 1的日志文件。
另一方面,如果日志轮换在日志文件名称中附加时间戳值以重命名它,那么在打开日志文件进行写入(比如它的app.log.timestamp)之前和写入之前,需要检查最新的旋转文件再次,您需要检查日志目录以找出最新的旋转日志文件,如果您发现旋转日志文件的时间戳大于app.log.timestamp的时间戳,那么您应该使用名为app.log的文件。(时间戳+日志轮换的持续时间)
注意:轮播主要发生在两个基础上,即大小或时间戳,通常在我的观察中,文件在轮换后通过在其名称中附加数字或时间戳来重命名,例如如果日志名称是application.log,则在位置之后,其名称将变为application.log.x(其中x是数字1,2,3 ...)或application.log。其中timestamp是日志轮换发生的日期时间