上述程序执行后,将持续在控制台输出所有的日志记录,日志记录文件有三个,循环向日志文件中写入日志,当文件大小达到1kb时,开始在另一个文件删除日志记录,并写入新的日志记录。
(2)根据时间进行回滚。
按文件时间回滚的类时TimeRotatingFileHandler,这一个类包含以下参数:
filename :输出日志文件名的前缀,比如main.log
when 是一个字符串的定义如下:
“S”: Seconds
“M”: Minutes
“H”: Hours
“D”: Days
“W”: Week day (0=Monday)
“midnight”: Roll over at midnight
interval 是指等待多少个单位when的时间后
import time import logging import logging.handlers # logging初始化工作 logging.basicConfig() # logger的初始化工作 logger = logging.getLogger('main') logger.setLevel(logging.INFO) # 添加TimedRotatingFileHandler # 定义一个1秒换一次log文件的handler # 保留3个旧log文件 timefilehandler = logging.handlers.TimedRotatingFileHandler(".log", when='S', interval=1, backupCount=3) # 设置后缀名称,跟strftime的格式一样 timefilehandler.suffix = "%Y-%m-%d_%H-%M-%S.log" formatter = logging.Formatter('%(asctime)s|%(name)-12s: %(levelname)-8s %(message)s') timefilehandler.setFormatter(formatter) logger.addHandler(timefilehandler) while True: time.sleep(0.1) logger.debug("debug") logger.info("info") logger.warning("warning") logger.critical("critical")
5 总结本篇系统得总结了Python内容的日志记录模块logging的用法,囊括了logging的大部分内容。掌握本篇内容,感觉在开发中基本没有问题。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx