import logging
import osfrom 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版权协议,转载请附上原文出处链接和本声明。