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