在程序运行的过程中需要打印一些有用的信息,但如果需要打印的信息比较多的话且运行时间较长则磁盘容量可能不够用。

因此就需要写循环日志。

比如设置日志的大小为3M,设置日志的个数为3个,设置日志名称为Log。

则程序开始时,开始往Log文件写日志,一旦Log超过3M,则将Log存为Log.1,并重新往Log里写日志。以此类推,Log.1满了则存为Log.2,Log.2满了则存为Log.3。都满了Log.3的内容就会被删除了。总之Log保存最新的打印消息。

并且主模块和各个子模块可以共用一个Logging处理器,下面上示例:

主模块:

#-*-coding:utf-8-*-# logging模块
# 设置单个日志文件最大3M,最多同时存在200个,总计600M,超过则循环式覆盖
# 当前正在写入的日志名称为Log,其它已达到最大容量的日志名称为 Log.1 .2 .3。。。import datetime
import logging
import myFun
from logging.handlers import RotatingFileHandler#获取一个logger实例
logger = logging.getLogger('mylogger')#设置logger等级
logger.setLevel(level=logging.DEBUG)#设置日志格式
fmt = '%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'
format_str = logging.Formatter(fmt)#设置日志回滚
handle = RotatingFileHandler("Log", maxBytes=10240, backupCount=3,encoding="utf-8")
handle.setFormatter(format_str)#设置日志名称
handle.namer = lambda x: 'Log.' + x.split('.')[-1]#给logger添加handler
logger.addHandler(handle)#测试主模块
for i in range(50):logger.debug("测试日志main %d", i)#测试子模块打印日志
myFun.myfun()

子模块:

import logging
from logging.handlers import RotatingFileHandler#
# logging模块
# 设置单个日志文件最大3M,最多同时存在200个,总计600M,超过则循环式覆盖
# 当前正在写入的日志名称为Log,其它已达到最大容量的日志名称为 Log.1 .2 .3。。。
#def myfun():#共享主模块日志配置logger = logging.getLogger('mylogger')print('========fun========')for i in range(50):logger.debug("测试日志fun %d", i)if __name__ == "__main__":print('main')myfun()

生成了Log,Log.1,Log.2,Log.3

部分日志内容

python用logging模块写循环日志相关推荐

  1. 解决多个py模块调用同一个python的logging模块,打印日志冲突问题

    前期对python中的logging模块进行了封装,这样自动化测试框架中的多个测试脚本(py)就可以使用同一个封装后的日志系统,这样各脚本中只需要引用一下即可,方面快捷.那么当我使用unittest框 ...

  2. python logging模块打印log日志到文件和屏幕

    一.logging的框架 1. Loggers: 可供程序直接调用的接口,app通过调用提供的api来记录日志 2. Handlers: 决定将日志记录分配至正确的目的地 3. Filters:对日志 ...

  3. python之 logging模块详细使用【转载】

    很多程序都有记录日志的需求,并且日志中包含的信息既有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,主要用于输出 ...

  4. python使用logging打印信息到日志文件中

    python使用logging打印信息到日志文件中 参考 Python输出日志信息 Python + logging 输出到屏幕,将log日志写入文件 使用logging打印日志到文件中的目的是: 解 ...

  5. python 之logging 模块

    很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,loggin ...

  6. Python中logging模块的基本用法

    本文首发于:行者AI 在开发项目时,我们不可能将所有的信息都打印在控制台中.我们可以使用Python标准库提供的logging API来处理.相比print,logging模块提供了许多强大而灵活的功 ...

  7. python stdout_详解使用python的logging模块在stdout输出的两种方法

    详解使用python的logging模块在stdout输出 前言: 使用python的logging模块时,除了想将日志记录在文件中外,还希望在前台执行python脚本时,可以将日志直接输出到标准输出 ...

  8. python logging模块-写日志、log回滚

    python包/模块,专栏总目录: 1.python自定义模块 2.python模块调用顺序 3.python logging模块 4.python定义跨模块的全局变量 1.logging模块简介 l ...

  9. python中logging模块详解_python logging日志模块详解

    logging 日志模块详解 用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这 ...

最新文章

  1. 共享数字经济之光!世界互联网大会重磅发布“30位新生代数字经济人才”
  2. 西门子stl语言指令_STEP7项目的JL跳转指令你会用吗?
  3. 理解进程调度时机跟踪分析进程调度与进程切换的过程
  4. iphone复制不能全选_忘记Apple ID密码,如何直接在 iPhone 上更改?
  5. 电脑安装python后开不了机_ubuntu 安装python3.6后,terminal终端打不开问题
  6. 明略数据(现在)是一家怎样的公司?
  7. jupyter notebook matplotlib绘制动态图并显示在notebook中
  8. idea 生成自己项目 API (跟jdk api 一样的界面) 香吧
  9. Matlab逻辑运算符/与/或/非/异或/all/any
  10. Elasticsearch LBS 的简单应用
  11. 干货:分析学中常用的3种分析方法!
  12. 8月第4周基金排行榜 | TokenInsight
  13. 计算机双硬盘怎么启动第二块硬盘,电脑装两个硬盘怎么设置主从盘_双硬盘设置主盘的方法...
  14. visca协议c语言,VISCA协议控制键盘 SONY VISCA协议会议摄像机控制键盘NK-EVI603K
  15. 递归解九连环并且打印中间过程
  16. Jetson Nano--YoLoV5测试运行--记录
  17. 双向可控硅触发电路的设计方案
  18. SDIO wifi Marvell8801/Marvell88w8801 介绍(五) ---- Marvell8801/Marvell88w8801 TLV
  19. 计算机维修套装推荐,工欲善其事,必先利其器---iFixit 54 Bit Driver Kit 维修工具套装...
  20. “深入理解-GJB5000A-2008军用软件研制能力成熟度模型” 公开课开始

热门文章

  1. 0009基于51单片机智能门禁系统设计
  2. 记录基础学习第二_小项目_飞行棋小游戏
  3. 求100以内所有的素数C版(用数组标记的方式)
  4. python微信登录模块_Python清理微信僵尸粉,基于itchat模块
  5. 《苏宁易购:商品详情系统架构设计》读后感
  6. Pix4Dmapper安装
  7. 基于低级键盘钩子的dota改键(全局+免DLL注入)MFC实现(源码+总结)
  8. HTML基本语法学习
  9. [杂记]一些感悟,随时更新
  10. 【汇正财经】什么是蓝筹股