函数编程09--自定义日志函数
2021/11/7 14:10:47
本文主要是介绍函数编程09--自定义日志函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
自定义日志函数
1)日志基础 a)日志用于详细记录重要的步骤和操作,可供测试人员更好的调试脚本 b)日志可以输出到控制台、文件,也可以同时输出到控制台和文件 c)输出到控制台时,可以代替print d)日志输出等级 日志等级由低到高分别是DEBUG、INFO、WARNING、ERROR、CRITICAL CRITICAL:特别糟糕的事情,如内存耗尽,磁盘空间为空 ERROR:发生错误时,如IO操作失败或者连接问题 WARNING:发生很重要的事情,但并不是错误,是警告信息 INFO:处理请求或者状态变化等日常事务 DEBUG:调试过程中使用,如算法中每个循环的中间状态 设置日志输出等级后,凡是比指定等级高的日志均输出,比指定等级低的日志均不输出 2)日志输出到控制台步骤 导入模块logging:import logging 使用日志需要导入模块logging 创建日志对象: logger = logging.getLogger() 设置日志输出等级:logger.setLevel(logging.INFO) 等级INFO、WARNING、ERROR、CRITICAL的日志均会输出 设置日志输出格式: formater = logging.Formatter('%(asctime)s-%(filename)s - %(lineno)d-%(message)s') %s之间的内容全部是关键字,不能改变 asctime:当前时间(精确到ms) filename:模块名 lineno:行号 levelname:日志等级 message:自定义消息 创建日志处理器:console=logging.SteamHandler() #输出控制台 用于设定日志输出到控制台 设置日志处理器的日志输出格式:console.setFormatter(formater) 当前时间 - 模块名 - 行号 - 日志等级 - 自定义日志消息 日志处理器增加到日志对象:logger.addHandler(console) 关闭日志处理器:logger.close() 3)使用日志 假设自定义的日志函数名 log log().info('日志消息') log().warning('日志消息') log().error('日志消息') log().critical('日志消息') 4)日志重复输出问题 原因是没有移除上一个日志处理器 logger=logging.getLogger() 若内存中已存在创建的对象,则不会重复创建 logger.addHandler(console) 将console添加到logger对象中 第1次输出日志时,第1个handler添加到logger中 第2次输出日志时,第2个handler添加到logger中,logger中有2个handler,传递的日志消息都是最新的、相同的,结果相同日志输出2次,依次类推 5)解决日志重复输出方案 如果logger.handlers列表为空,则添加日志处理器,否则直接去写日志 参考代码: if not logger.handlers: logger.setLevel(logging.INFO) formatter = logging.Formatter(...) console=logging.StreamHandler() console.setFormatter(formatter) logger.addHandler(console) console.close()
这篇关于函数编程09--自定义日志函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-21订单系统资料入门教程:轻松管理你的订单
- 2024-09-21Java部署资料:新手入门教程
- 2024-09-21Java部署资料:新手入门教程
- 2024-09-21Java订单系统资料:新手入门教程与实战指南
- 2024-09-21Java管理系统资料入门教程
- 2024-09-21从零开始学习Java监控系统资料
- 2024-09-21Java就业项目资料:新手入门的必备教程
- 2024-09-21Java全端资料:初学者指南
- 2024-09-21Java全栈资料入门教程及资源汇总
- 2024-09-21Java日志系统资料入门教程