python——logging日志模块

01日志等级

import logging

logging.debug("这是一条debug级别的日志")
logging.info("这是一条info级别的日志")
logging.warning("这是一条warning级别的日志")
logging.error("这是一条error级别的日志")
logging.critical("这是一条critical级别的日志")

 

02日志输出渠道

日志输出渠道:

1、输出到控制台

2、输出到文件


import logging

# 创建一个日志收集器(如果不传参数name,会返回默认的日志收集器root)
mylog = logging.getLogger()

# 设置日志收集器收集的等级
mylog.setLevel("DEBUG")

# 设置日志输出的等级
# 创建一个输出到控制台的输出渠道
sh = logging.StreamHandler()
# 设置输出渠道的输出等级
sh.setLevel("ERROR")
# 将输出渠道和日志收集器绑定
mylog.addHandler(sh)

# 创建一个输出到文件的输出渠道
fh = logging.FileHandler("all.log",encoding="utf8")
fh.setLevel("DEBUG")
mylog.addHandler(fh)

logging.debug("这是一条debug级别的日志")
logging.info("这是一条info级别的日志")
logging.warning("这是一条warning级别的日志")
logging.error("这是一条error级别的日志")
logging.critical("这是一条critical级别的日志")

03创建一个自己的日志收集器

import logging

# 第一步:创建一个日志收集器
log = logging.getLogger("logtest")

# 第二步:设置收集器收集的等级
log.setLevel("DEBUG")

# 第三步:设置输出渠道以及输出渠道的等级
#输出到文件
fh = logging.FileHandler("mylog.log", encoding="utf8")
fh.setLevel("DEBUG")
log.addHandler(fh)

#输出到控制台
sh = logging.StreamHandler()
sh.setLevel("WARNING")
log.addHandler(sh)


# 第四步:设置输出格式
formats='%(asctime)s -- [%(filename)s-->line:%(lineno)d] - %(levelname)s: %(message)s'
# 创建一个输出格式对象
form = logging.Formatter(formats)
# 将输出格式添加到输出渠道
fh.setFormatter(form)
sh.setFormatter(form)

log.info("-------------info等级的日志-------------")
log.error("-------------error等级的日志-------------")

# 输出日志
# 注意点:自己创建的的日志收集器收集,要使用收集器取记录,不能直接使用logging去记录
# logging.error("----------------error----------")

05日志轮转

from logging.handlers import TimedRotatingFileHandler,RotatingFileHandler

import logging

# 第一步:创建一个日志收集器
log = logging.getLogger("musen")

# 第二步:设置收集器收集的等级
log.setLevel("DEBUG")


# 第三步:创建输出渠道
# 创建一个按时间进行轮转的文件输出渠道
# fh = TimedRotatingFileHandler("user.log",encoding="utf8",when="S",interval=1,backupCount=7)
# fh.setLevel("DEBUG")
# log.addHandler(fh)

# 按文件大小进行轮转
fh = RotatingFileHandler("musen.log",encoding="utf8",maxBytes=1024*1024*20,backupCount=7)
fh.setLevel("DEBUG")
log.addHandler(fh)


# 第四步:设置输出格式
formats='%(asctime)s -- [%(filename)s-->line:%(lineno)d] - %(levelname)s: %(message)s'
# 创建一个输出格式对象
form = logging.Formatter(formats)
# 将输出格式添加到输出渠道
fh.setFormatter(form)

 

原文地址:https://www.cnblogs.com/erchun/p/12493649.html