代码之家  ›  专栏  ›  技术社区  ›  Slazer

使用不同扩展名旋转日志

  •  1
  • Slazer  · 技术社区  · 7 年前

    根据 the documentation 用于原木旋转

    当backupcount为非零时,系统将通过以下方式保存旧日志文件: 将扩展名__.1_、_.2_等附加到文件名。对于 例如,备份计数为5,基本文件名为app.log,则 将获得app.log,app.log.1,app.log.2,最多app.log.5。

    我想使用不同的扩展名-而不是 日志1日志2日志3 我想旋转成 日志,日志.x,日志.x.x,日志.x.x.x 。我怎样才能做到?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Igl3    7 年前

    RotatingFileHandler doRollover

    def doRollover(self):
        """
        Do a rollover, as described in __init__().
        """
        if self.stream:
            self.stream.close()
            self.stream = None
        if self.backupCount > 0:
            for i in range(self.backupCount - 1, 0, -1):
                # Those are the lines, which set the filenames
                sfn = self.rotation_filename("%s.%d" % (self.baseFilename, i))
                dfn = self.rotation_filename("%s.%d" % (self.baseFilename,
                                                        i + 1))
                if os.path.exists(sfn):
                    if os.path.exists(dfn):
                        os.remove(dfn)
                    os.rename(sfn, dfn)
            dfn = self.rotation_filename(self.baseFilename + ".1")
            if os.path.exists(dfn):
                os.remove(dfn)
            self.rotate(self.baseFilename, dfn)
        if not self.delay:
            self.stream = self._open()