logging模块的四大组件及其使用,如何自定义日志
用处:
1.调试程序,定位问题
2.数据分析
3.用户信息跟踪
二、logging模块的四大组件:
1.logger(日志器):给所有的应用程序提供入口
2.handle(处理器):决定在不同端实现输出
3.formatter(格式器):决定日志内容(日志包含时间,行号,信息描述,信息级别,信息等)
4.filter(过滤器):对信息进行筛选,保留感兴趣的信息
三、四大组件之间的关系:
一个日志器可以有多个处理器,一个处理器可以有格子的格式器和过滤器
四、日志输出端:
日志文件或输出台
五、输出日志级别按照日志输出还是处理器输出级别控制
输出日志级别有日志输出级别和处理器输出级别控制,输出日志级别先按照日志器级别,再按照处理器级别实现输出
六、代码实现
import logging logger = logging.getLogger("my_log") # 1.输出到控制台 handler = logging.StreamHandler() handler.setLevel(logging.INFO) format1 = logging.Formatter(fmt="%(asctime)s - %(filename)s - %(lineno)d - %(message)s", datefmt="%Y/%m/%d %H:%M:%S") handler.setFormatter(format1) logger.addHandler(handler) logger.debug("debug!!") logger.info("info!!") logger.warning("warning!!") logger.error("error!!") logger.critical("critical!!") # 移除处理器handler logger.removeHandler(handler) # 2.输出到日志文件中 handle2 = logging.FileHandler("logs.log") handle2.setLevel(logging.WARN) format2 = logging.Formatter(fmt="%(asctime)s - %(filename)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S") handle2.setFormatter(format2) logger.addHandler(handle2) logger.debug("my_debug!!") logger.info("my_info!!") logger.warning("my_warning!!") logger.error("my_error!!") logger.critical("my_critical!!")
注意:添加处理器:logger.addHandler("xxx")
移除处理器:logger.removeHandler("xxx")
自定义日志的基本用法就是这样,希望对你有所帮助,也希望多多关注,多多支持,您的关注与支持是我更新下去的动力:)