ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

web自动化- 日志

2022-07-21 18:36:08  阅读:139  来源: 互联网

标签:web logging 处理器 设置 自动化 日志 级别 logger


今日目标:
1. 日志 【核心目标】
2. 项目

一、日志
1.1 什么是日志
说明:记录系统运行程序一些步骤,对一个事件(点击事件)也称为日志(Log)
1.2 特点
1. 调试程序
2. 定位跟踪bug
3. 根据日志,查看系统运行是否出错;
4. 分析用户行为,与数据统计
1.3 级别
1. debug # 调试级别
2. info # 信息级别
3. warning # 警告
4. error # 错误级别
5. critical # 严重

提示:
1. 开发常用以上 debug、info、warning、error
2. 测试常用级别:info、error
1.4 Logging基本使用
步骤:
1. 导包 如:import logging
2. 调用相应的级别方法,记录日志信息 logging.debug("debug...")
设置级别:
logging.basicConfig(level=logging.DEBUG)
提示:
1. 默认级别为:logging.WARNING
2. 设置级别时调用的是logging文件夹下面的常量,而不是调用的小写方法
3. 切记:设置级别以后,日志信息只会记录大于等于此级别的信息;

 

 

设置格式
fm = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d] - %(message)s"
logging.basicConfig(level=logging.DEBUG, format=fm)

设置输入到文件
logging.basicConfig(level=logging.DEBUG, format=fm, filename="../log/log01.log")

 

 

 

 

 

 

 

1.5 logging 高级用法
1). 为什么要使用高阶用法???
1. 中文乱码
2. 无法同时输入到文件和控制台
2). logging组成
1. Logger 日志器
2. handler 处理器
3. formatter 格式器
4. filter 过滤器
3). 模块关系
日志器:提供了,记录日志的入口,如:log.info("")
处理器:真正将日志器内容发送到控制台还是文件或网络,都是处理器干的;每个日志器都可以添加多个不同的处理器
格式器:处理器可以设置不同的格式,就需要使用格式器
过滤器:处理器需要过滤日志信息,就需要设置过滤器;

日志器:
操作:
1. 导包 import logging
2. 调用方法获取logger对象 # 如: logging.getlogger()
3. 设置级别:logger.setlevel=logging.INFO
4. 调用添加处理器方法 logger.addHandler(处理器)

处理器:
类型:
1. 控制台处理器 StreamHandler()
2. 文件处理器 fileHandler() # 文件无限增大
3. 根据大小切割 RotatingFileHandler() 了解
4. 根据时间切割 TimedRotatingFileHandler() 掌握

 

 


获取:
sf = logging.StreamHandler()

TimedRotatingFileHandler()应用:
1. 导包: import logging.handlers
2. 实例化:th = logging.handers.TimedRotatingFileHandler(filename="日志文件保存的目录及文件名",
when='M',
interval="1",
backupcount=30)
1). when:时间单位
2). interval:时间间隔
3). backupcount:保留的备份数量
格式器:
获取:
fmt = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d] - %(message)s"
fm = logging.Formatter(fmt)

将格式器添加到处理器中
控制台处理器.setFormatter(fm)
文件处理器.setFormatter(fm)

应用:
logger.info("日志信息")
logger.error("日志信息")

 

 

 

 

 

 项目开发中, when 要改成midnight

# 如果有需求,需要生成两个log日志文件,且这两个文件记录的日志级别信息需不同, 只需对他们的处理器设置成对应的日志级别即可。  handle.setlevel(logging.DEBUG)  写成这样即可

 

 

日志封装
# 定义获取日之类
# 定义类属性 logger = None

@classemethod
# 定义获取logger日志器的类方法
if cls.logger is None: # 判断类属性logger是否还是为空,如果为空,就执行以下操作
# 获取 日志器对象
# 设置日志器级别
# 获取控制台处理器
# 获取文件处理器
# 获取格式器
# 将格式器添加到处理器中
# 将处理器添加到日志器中
return 类属性logger

注意:
1. 以上条件无论是否成立,最后都会返回类属性logger;
2. 当第一次调用时,条件一定成立,将类属性logger设置不为空;
3. 当第二次以上调用时,永远返回第一次设置的类属性对象;



标签:web,logging,处理器,设置,自动化,日志,级别,logger
来源: https://www.cnblogs.com/yumi2021/p/16503030.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有