一、日志模块
1、日志作用的:记录程序的执行过程,还原用户操作的过程
2、日志要素:
(1)日志渠道:日志输出的位置、文件、控制台
(2)日志级别:info、debug、error
(3)日志格式:日志样子,可自定义
(4)日志内容:自己输出的内容,或者是报错信息
二、日志级别
debug < info < warning < error < critical
debug :代码调试的输出
info: 表示程序正常执行的输出
warning : 不影响程序执行,可以优化
error:执行报错
critical:程序严重问题
修改root收集器的日志级别,logging.basicConfig(level=logging.DEBUG)
三、自定义日志收集器
1、创建日志手机器:创建和root一样的收集器
2、创建日志收集渠道,输出到哪里
3、创建日志格式
4、自定义日志输出格式,绑定给渠道
5、给收集器设置日志级别
6、将渠道绑定给自定义的收集器
四、代码示例
1、日志收集渠道为:控制台
import logging
# 创建体日志收集器
custom_log = logging.getLogger(name="wcy")
# 创建日志收集渠道【输出到控制台渠道】
congZhiTai = logging.StreamHandler()
# 自定义日志输出格式
customFormat = '【%(asctime)s - %(name)s - %(levelname)s - %(pathname)s - %(filename)s - %(lineno)d】: ' \'%(message)s'
log_format = logging.Formatter(fmt=customFormat)
# # 给渠道设置日志输出格式
congZhiTai.setFormatter(fmt=log_format)
# 给收集器设置日志级别
custom_log.setLevel(logging.INFO)
# 给收集器绑定渠道
custom_log.addHandler(congZhiTai)
print(custom_log.info("test"))
控制台输出为:
【2021-12-01 19:40:50,188 - wcy - INFO - /Users/wangchuangyan/Desktop/py42/Summary/loggingDemo.py - loggingDemo.py - 58】: test
2、日志收集渠道为:文件
import logging
from logging import handlers
"""
def __init__(self,
filename, 日志文件名称,要带路径,默认是当前目录
when='h', 日志滚动周期的单位 S M H D W
interval=1, 日志切割周期 1
backupCount=0, 日志保留的格式
encoding=None, 日志编码格式
delay=False, utc=False, atTime=None,
errors=None):
"""
def custom_logging():
# 创建体日志收集器
custom_log = logging.getLogger(name="wcy")
# 创建日志输出渠道,文件
fileQuDao = handlers.TimedRotatingFileHandler(filename="python.log",
when="D",
encoding="utf-8"
)
# 创建日志格式
customFormat = '【%(asctime)s - %(name)s - %(levelname)s - %(pathname)s - %(filename)s - %(lineno)d】: ' \
'%(message)s'
log_format = logging.Formatter(fmt=customFormat)
# 给渠道设置日志输出格式
fileQuDao.setFormatter(fmt=log_format)
# 给收集器设置日志级别
custom_log.setLevel(logging.INFO)
# 给收集器绑定渠道
custom_log.addHandler(fileQuDao)
return custom_log
log = custom_logging()
log.info("log在python.log文件中输出")
可以看到和代码同级目录中生成一个python.py文件,里面包含了所有的日志信息: