2.7 日志logging类封装

本文介绍了一种自定义日志模块的方法,包括配置文件设置、日志等级、输出渠道及格式化设置,适用于Python自动化测试环境。

直接扔代码,自己看咯,都有注释:
1. 配置文件中,存放日志相关信息: 等级,渠道(日志保存在文件中还是输出在控制台),日志文件名称,测试人员信息,如下:
在这里插入图片描述
2. 自定义日志类

from common.read_config import *
import logging

"""获取日志配置信息"""
log_set = my_config.read_data_by_one_section_name('log_set')  # 获取测试数据文件的文件名


class MyLog:

    def __new__(cls, level, channel, logname, tester='Lujier'):
        # 创建自己的日志收集器,my_log当作一个对象返回
        dir_path = os.path.dirname(os.path.dirname(__file__))
        log_path = os.path.join(dir_path, 'logs', logname)
        my_log = logging.getLogger(tester)
        # 创建一个日志输出渠道(输出到控制台)
        my_log.setLevel(level)  # 日志输出等级
        output_type = ''
        if channel == 'CONSOLE':
            output_type = logging.StreamHandler()  # 输出到控制台

        else:
            output_type = logging.FileHandler(log_path, encoding='UTF-8')  # 输出到控制台

        output_type.setLevel(level)

        # 将输出渠道添加到日志收集器中
        my_log.addHandler(output_type)  # 将输出渠道添加到日志收集器中
        my_log.addHandler(output_type)

        # 设置日志输出格式
        ft = '%(asctime)s-->[%(filename)s-->%(funcName)s-->line:%(lineno)d] - %(levelname)s: %(message)s'
        ft = logging.Formatter(ft)
        output_type.setFormatter(ft)
        output_type.setFormatter(ft)

        return my_log


my_log = MyLog(**log_set)  # 创建一个日志对象

注意: ft中%各自代表含义如下:
‘’’
%(name)s:收集器名称
%(levelno)s: 打印日志级别的数值
%(levelname)s: 打印日志级别名称
%(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s: 打印当前执行程序名
%(funcName)s: 打印日志的当前函数
%(lineno)d: 打印日志的当前行号
%(asctime)s: 打印日志的时间
%(thread)d: 打印线程ID
%(threadName)s: 打印线程名称
%(process)d: 打印进程ID
%(message)s: 打印日志信息
“”"
工作中常用
format=’%(asctime)s - [%(filename)s–>line:%(lineno)d] - %(levelname)s: %(message)s’

此时进行日志输出时,如下:
在这里插入图片描述
运行之后,查看日志文件:
在这里插入图片描述

13:41:04 接收数据: <SB>MSH|^~\&|680|680|Host||20250828134104||ORU^R01|1|P|2.3.1||||0||UNICODE|||<CR> PID|1||||刘贵明|^||M||||||||||||||||||||||73^Y<CR> OBR|1||7|680^680|N||20250828092319||1|1^7||N||20250828092319|0|苟红|西内3|||杨楠||20250828092319||||||||||<CR> OBX|NM|1|ALT^1|12|U/L|5-40|N||F||||20250828105503|1|杨楠|<CR> OBX|NM|2|AST^1|21|U/L|8-40|N||F||||20250828105509|1|杨楠|<CR> OBX|NM|3|TP^1|72.8|g/L|60-83|N||F||||20250828105550|1|杨楠|<CR> OBX|NM|4|ALB^1|42.8|g/L|37-53|N||F||||20250828105050|1|杨楠|<CR> OBX|NM|5|TBA^1|5.38|μmol/L|1-12|N||F||||20250828105503|1|杨楠|<CR> OBX|NM|6|GLU^1|4.07|mmol/L|3.89-6.11|N||F||||20250828105743|1|杨楠|<CR> OBX|NM|7|CHE^1|6161|U/L|5000-12000|N||F||||20250828105328|1|杨楠|<CR> OBX|NM|8|ALP^1|81|U/L|40-150|N||F||||20250828105545|1|杨楠|<CR> OBX|NM|9|GGT^1|29|U/L|0-50|N||F||||20250828105551|1|杨楠|<CR> OBX|NM|10|CRE-E^1|70.5|μmol/L|45-104|N||F||||20250828105633|1|杨楠|<CR> OBX|NM|11|UREA^1|5.90|mmol/L|2.82-8.2|N||F||||20250828105428|1|杨楠|<CR> OBX|NM|12|UA^1|261|μmol/L|120-430|N||F||||20250828105644|1|杨楠|<CR> OBX|NM|13|TC^1|3.81|mmol/L|0-5.2|N||F||||20250828105650|1|杨楠|<CR> OBX|NM|14|TG^1|0.64|mmol/L|0.4-1.81|N||F||||20250828105656|1|杨楠|<CR> OBX|NM|15|HDL-C^1|1.72|mmol/L|1.07-1.89|N||F||||20250828105703|1|杨楠|<CR> OBX|NM|16|LDL-C^1|1.90|mmol/L|0-3.1|N||F||||20250828105708|1|杨楠|<CR> OBX|NM|17|Ca^1|2.24|mmol/L|2.1-2.7|N||F||||20250828091633|1|杨楠|<CR> OBX|NM|18|Cl^1|103.1|mmol/L|96-108|N||F||||20250828091633|1|杨楠|<CR> OBX|NM|19|PA^1|17.6|mg/dL|20-40|L||F||||20250828105714|1|杨楠|<CR> OBX|NM|20|Lp(a)^1|240.5|mg/L|0-300|N||F||||20250828105720|1|杨楠|<CR> OBX|NM|21|CYS-C^1|1.3|mg/L|0-1.16|H||F||||20250828105726|1|杨楠|<CR> OBX|NM|22|APO A1^1|1.3|g/L|1-1.6|N||F||||20250828105732|1|杨楠|<CR> OBX|NM|23|APO B^1|0.8|g/L|0.6-1.1|N||F||||20250828105738|1|杨楠|<CR> OBX|NM|24|ADA^1|14.9|U/L|0-25|N||F||||20250828105744|1|杨楠|<CR> OBX|NM|25|TBIL^1|7.2|μmol/L|1.7-21|N||F||||20250828105528|1|杨楠|<CR> OBX|NM|26|DBIL^1|3.6|μmol/L|0-6.8|N||F||||20250828105756|1|杨楠|<CR> OBX|ST|27|K^1|4.47|mmol/L|3.5-5.5|N||F||||20250828091633|1|杨楠|<CR> OBX|ST|28|Na^1|141.3|mmol/L|135-148|N||F||||20250828091633|1|杨楠|<CR> OBX|NM|29|A/G^1|1.43|%|1.25-2.25|N||F||||20250828091633|1|杨楠|<CR> OBX|NM|30|GLB^1|30.0|g/L|15-35|N||F||||20250828091633|1|杨楠|<CR> OBX|NM|31|AST/ALT^1|1.75||0-0|N||F||||20250828091633|1|杨楠|<CR> OBX|NM|32|IBIL^1|3.6|μmol/L|1-17|N||F||||20250828091633|1|杨楠|<CR> OBX|ST|33|HBsAg^1|阴性|||N||F||||20250828092808|1|杨楠|<CR> OBX|ST|34|HBsAb^1|阴性|||N||F||||20250828092808|1|杨楠|<CR> OBX|ST|35|HBeAg^1|阴性|||N||F||||20250828092808|1|杨楠|<CR> OBX|ST|36|HBeAb^1|阴性|||N||F||||20250828092808|1|杨楠|<CR> OBX|ST|37|HBcAb^1|阴性|||N||F||||20250828092808|1|杨楠|<CR> OBX|ST|38|HIV^1|阴性|||N||F||||20250828092808|1|杨楠|<CR> OBX|ST|39|T P^1|阴性|||N||F||||20250828092808|1|杨楠|<CR> <EB><CR> 13:41:04 发送数据: <SB>MSH|^~\&|680|680|Host||20250828134104||ACK^R01|1|P|2.3.1||||0||UNICODE|||<CR> MSA|AA|1||||0|<CR> <EB><CR> 如何用c#代码实现将发送数据在输出日志中不显示
最新发布
08-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值