日志模块
一、日志作用:记录程序的执行过程
二、日志要素:
1、日志渠道:日志的输出位置、文件、控制台
2、日志级别:info、debug、error......
3、日志格式:日志的样子,长啥样
4、日志内容:自己输出的内容,或者是报错信息
三、日志级别:从小到大,下一级别包含上一级别
debug(代码调试的输出)
info(表示程序正常执行的输出)
warning(不影响程序执行,可以优化的提示)
error(程序执行报错)
crcritical(程序存在严重问题)
如何修改root收集器的日志级别:
import logging
logging.basicConfig(logging.DEBUG) # 修改默认级别为debug级别
四、日志收集器创建
创建:
1、创建日志收集器:创建和root一样的收集器
# 第一步,创建日志收集器 my_log = logging.getLogger("myLog") # 创建名为myLog的日志收集器
2、创建日志收集渠道:输出到哪里
# 第二步,创建日志收集渠道 file_log = handlers.TimedRotatingFileHandler(filename="python.log",when="D",encoding="utf-8") # 创建文件渠道 ''' filename:日志文件名称,要带路径,默认是当前目录 when='h':日志滚动周期的单位,有S秒,M分钟,H小时,D天(24小时制),W周,midnigt日切(以凌晨为界线) interval=1:日志滚动周期(日志切割周期),其中1代表1个when backupCount=0:日志保留的个数 encoding=None:编码格式 '''
3、创建日志的格式:
fmt = '[%(asctime)s - %(name)s - %(levelname)s - %(pathname)s - %(lineno)d]: - %(message)s' # 自定义日志内容
log_format = logging.Formatter(fmt) # 创建日志格式
绑定:
4、设置日志输出格式
file_log.setFormatter(log_format) # 给渠道设置日志输出格式
5、设置日志级别
my_log.setLevel(logging.INFO) # 给收集器设置日志级别
6、收集器绑定渠道
my_log.addHandler(file_log) # 收集器绑定渠道
实现代码:
import logging
from logging import handlers
def auto_log():
# 第一步,创建日志收集器
my_log = logging.getLogger("myLog") # 创建名为myLog的日志收集器
# 第二步,创建日志收集渠道
pycharm = logging.StreamHandler() # 创建日志收集渠道(这里是创建到pycharm控制台)
file_log = handlers.TimedRotatingFileHandler(filename="python.log",when="D",encoding="utf-8") # 创建文件渠道
'''
filename:日志文件名称,要带路径,默认是当前目录
when='h':日志滚动周期的单位,有S秒,M分钟,H小时,D天(24小时制),W周,midnigt日切(以凌晨为界线)
interval=1:日志滚动周期(日志切割周期),其中1代表1个when
backupCount=0:日志保留的个数
encoding=None:编码格式
'''
fmt = '[%(asctime)s - %(name)s - %(levelname)s - %(pathname)s - %(lineno)d]: - %(message)s' # 自定义日志内容
log_format = logging.Formatter(fmt) # 创建日志格式
pycharm.setFormatter(log_format) # 给渠道设置日志输出格式
file_log.setFormatter(log_format)
my_log.setLevel(logging.INFO) # 给收集器设置日志级别
my_log.addHandler(pycharm) # 收集器绑定渠道
my_log.addHandler(file_log)
return my_log
# 实例化对象
test_log = auto_log()
test_log.info("test1111")