您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    Python 如何仅用 5000 行代码,完成弱小的 logging 模块?(8)
    时间:2021-03-08 21:02 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

                for i in range(self.backupCount - 10, -1): 

                    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()  # 假设shouldRollover延迟,可以翻开新的流 

     

        def shouldRollover(self, record):  # 判别能否需求滚动 

            if self.stream is None:  # 立刻翻开流 

                self.stream = self._open() 

            if self.maxBytes > 0:    

                msg = "%s\n" % self.format(record) 

                self.stream.seek(02)  #due to non-posix-compliant Windows feature 

                if self.stream.tell() + len(msg) >= self.maxBytes:  # 判别大小 

                    return 1 

            return 0 

    文件大小滚动就是在记载日志时分判别文档能否超过下限,超过则重命名旧日志,生成新日志。

    按照日期滚动 TimedRotatingFileHandler

    按照日期滚动的处置器:

    class TimedRotatingFileHandler(BaseRotatingHandler): 

    (责任编辑:admin)