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')