方式一:
通过 RotatingFileHandler,需要导入
需要传三个参数
- 第一个参数:是文件名
- 第二个参数:是maxBytes文件存储最大内存,当文件大小超出会自动创建另一个文件,多出来的文件会以后缀名出现,比如文件名是demo.log,超出后的文件的命名就是demo.log.1,demo.log.2
- 第三个参数:是backupCount指定最多产生多少个文件,如果超出这个文件的最大个数,那么所有新的数据都会存到没有后缀的文件中,那么这个没有后缀的文件会越来越大
import logging
import time
from logging.handlers import RotatingFileHandler, TimedRotatingFileHandler
logger = logging.getLogger("python36")
handler = RotatingFileHandler('py36.log',
maxBytes=100,
backupCount=3,
encoding='utf-8')
logger.addHandler(handler)
# 打印日志
for i in range(100):
logger.warning("生成警告信息{}".format(time.time()))
time.sleep(0.1)
方式二:
根据时间生成新文件 TimedRotatingFileHandler ,需要导入
需要传入三个参数
- 第一个参数:是文件名
- 第二个参数:是 when 表示生成新文件的时间单位,具体有S、M、H、D分别表示秒、分、时、天
- 第三个参数:是 interval 表示隔多少个单位
- 第四个参数:是 backupCount 还是表示最大的文件数,新生成的文件会在文件名的后面加上时间个是最为后缀
import logging
import time
from logging.handlers import RotatingFileHandler, TimedRotatingFileHandler
logger = logging.getLogger("python36")
handler = TimedRotatingFileHandler('timepy36.log',
when='s',
interval=2,
backupCount=100,
encoding='utf-8')
logger.addHandler(handler)
for i in range(10):
logger.warning("生成警告信息{}".format(time.time()))
time.sleep(0.3)