python接口自動化第七篇--封裝日誌logger優化


import logging
#logging,快速收集器



#快速創建一個logging收集器,Rootlogger
#Rootlogger(WARNING)-->繼承自Logger
#Rootlogger的等級是warning

class LoggerHandler(logging.Logger):
    def __init__(self,name,level=0,file_name= None,handler_level=0,
                 fmt = '%(asctime)s-%(name)s-%(levelname)s-%(filename)s-%(lineno)d-%(message)s',
                 **kw):
        '''初始化參數,完成level、format、handler設置,使用繼承的方法'''
        super().__init__(name,level=level)#子類的初始化使用了父類的

        #初始化handler,作兼容性處理
        if file_name ==None:
            handler = logging.StreamHandler()
        else:
            handler = logging.FileHandler(file_name)
        #handler級別
        handler.setLevel(handler_level)
        #添加handler
        self.addHandler(handler)
        #設置format
        handler_format = logging.Formatter(fmt)#作爲參數傳遞進去是爲了靈活性
        handler.setFormatter(handler_format)

logger = LoggerHandler('python')
#這個函數不寫在main函數裏而是寫在模塊外是爲了能夠靈活供他人使用



if __name__ == '__main__':
    logger.error('i love u')






 

發佈了29 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章