编程语言
首页 > 编程语言> > 【IT之路】python3+selenium2实现UI自动化框架封装之公共类库实现:日志类LogUtils.py

【IT之路】python3+selenium2实现UI自动化框架封装之公共类库实现:日志类LogUtils.py

作者:互联网

一、思路

从ini配置文件中获取日志文件路径、日志文件名称和日志级别

二、常见要点:

1、从ini文件获取日志配置信息

2、获取日志主体

3、设置日志级别

三、实现代码

logConf.ini

[LOG]
base_path = C:\\Users\\Administrator\\Downloads
log_name = ouput.log
log_level = INFO

 

LogUtils.py

#-*-coding:utf-8-*-
'''
Created on 2021年5月3日

日志工具类

@author: mosorg
'''
import logging  # 引入logging模块
import os
from datetime import datetime
from org.mosorg.common.utils.IniHelper import IniHelper
proDir = os.path.split(os.path.realpath(__file__))[0]
configPath = os.path.join(proDir, "logConf.ini")

'''
config.ini文件格式:
[LOG]
base_path = C:\\Users\\Administrator\\Downloads
log_name = ouput.log
log_level = INFO
'''

class LogHelper(object):
    '''
    classdocs
    '''


    def __init__(self):
        '''
        Constructor
        '''
        iniHelper = IniHelper(configPath)
        iniHelper.select_section("LOG")
        global logPath, resultPath, proDir
        proDir = iniHelper.get_value("base_path")
        resultPath = os.path.join(proDir, "result")
        # 创建result file 如果它不存在
        if not os.path.exists(resultPath):
            os.mkdir(resultPath)
        # defined test result file name by localtime
        logPath = os.path.join(resultPath, str(datetime.now().strftime("%Y%m%d%H%M%S")))
        # create test result file if it doesn't exist
        if not os.path.exists(logPath):
            os.mkdir(logPath)
            
        # defined logger
        self.logger = logging.getLogger()
        # defined log level
        self.log_level = iniHelper.get_value("log_level")
        if self.log_level=="INFO":
            self.logger.setLevel(logging.INFO)
            self.log_level=logging.INFO
        if self.log_level=="DEBUG":
            self.logger.setLevel(logging.DEBUG)
            self.log_level=logging.DEBUG
        if self.log_level=="ERROR":
            self.logger.setLevel(logging.ERROR)
            self.log_level=logging.ERROR
        if self.log_level=="CRITICAL":
            self.logger.setLevel(logging.CRITICAL)
            self.log_level=logging.CRITICAL
        # defined handler
        log_name = iniHelper.get_value("log_name")
        handler = logging.FileHandler(os.path.join(logPath, log_name))
        # defined formatter
        formatter = logging.Formatter('%(asctime)s - %(name)s -%(levelname)s - %(message)s')
        # defined formatter
        handler.setFormatter(formatter)
        # add handler
        self.logger.addHandler(handler)
        

    def log(self,msg):
        self.logger.log(self.log_level, msg)
        
        
#直接实例化LogUtils类,方便调用
logHelper=LogHelper()

#日志工具类的调用
if __name__ == '__main__':
    logHelper.log("日志_ ")

 

标签:类库,logging,log,level,self,py,selenium2,path,os
来源: https://blog.csdn.net/mwb2001/article/details/116379967