* coding:utf-8 *
@time 2020/3/15 0015 22:10
@name 06日志轮转.py
“”"
日志轮转:
第一种:通过时间来轮转
第二种:按文件大小来轮转
“”"
import logging
from logging.handlers import TimedRotatingFileHandler, RotatingFileHandler
第一步:创建一个日志收集器对象
my_log = logging.getLogger(“xiaoluo”)
第二:设置日志收集器的收集等级:
my_log.setLevel(“DEBUG”)
第三步:设置输出渠道(文件)
# 设置一个按时间轮转的输出渠道
fh = TimedRotatingFileHandler(“mylog1.log”, encoding=“utf-8”, when=“s”, interval=1, backupCount=3)
# 第四部:设置输出渠道等级
fh.setLevel(“ERROR”)
my_log.addHandler(fh)
按文件大小进行轮转
fh = RotatingFileHandler(“my-log.log”, encoding=“utf-8”, maxBytes=1024 * 2, backupCount=3)
设置写入文件中日志的等级
fh.setLevel(‘INFO’)
my_log.addHandler(fh)
控制台
sh = logging.StreamHandler()
sh.setLevel(“WARNING”)
my_log.addHandler(sh)
第五步:设置输出日志的格式
formats = ‘%(name)s - %(asctime)s - [%(filename)s–>line:%(lineno)d] - %(levelname)s: %(message)s’
创建一个输出格式对象
form = logging.Formatter(formats)
讲输出格式添加到输出渠道
fh.setFormatter(form)
sh.setFormatter(form)
日志数据
注意点:自定义的日志收集器,要使用收集器取记录,不能直接使用logging去记录日志
logging.error("----这个是error------")
my_log.error("----error------")
my_log.info("----inifo------")
my_log.debug("----debug------")
my_log.warning("----warning------")
my_log.critical("----critical------")