python log 日志模块封装

import logging
import os
from Explanation.heand_path import logs_dir                  #logs_dir是一个log日志输出的地址
from Cfg.Handle_ini import cfg                               #cfg是我ini配置文件的导入

 

class MyLogger(logging.Logger):

    def __init__(self,name,level='',file=None):
        super().__init__(name,level=cfg.get('log','total_level'))           #level的级别引用ini配置文件log中total_level的值
        fmt = '%(asctime)s' + ' ' + '%(name)s' + ' ' + '%(levelname)s' + ' ' + '%(filename)s-%(lineno)d行' + ' ' + '%(message)s'  # 设置渠道内容输出格式
        formatter = logging.Formatter(fmt)          #实例化日志输出的格式

        #控制台渠道输出
        handle1 = logging.StreamHandler()   #实例化一个输出的渠道
        #handle1.setLevel(cfg.get('log','console_output_level'))     #可以单独设置handle1渠道的日志输出级别   调用ini配置文件内容
        handle1.setFormatter(formatter)
        self.addHandler(handle1)

        #文件渠道输出
        if file:
            handle2 = logging.FileHandler(file,encoding='utf-8')  # 实例化一个输出的渠道
            #handle2.setLevel(cfg.get('log','flie_ouput_level'))     #可以单独设置handle1渠道的日志输出级别    调用ini配置文件内容
            handle2.setFormatter(formatter)
            self.addHandler(handle2)


#调用时用的的变量
logger = MyLogger(cfg.get('log','current_module_name'),file=os.path.join(logs_dir,cfg.get('log','file_name')))      #ini配置中读取的  输出运行程序名 和 文件名


if __name__ == '__main__':                              #测试时使用的
    logger = MyLogger(cfg.get('log','current_module_name'),file=os.path.join(logs_dir,cfg.get('log','file_name')))
    logger.info('Test_My_Closs_Log')

版权声明:本文为weixin_42227719原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。