2.3、既要把日志输出到控制台, 还要写入日志文件
这就需要一个叫作Logger 的对象来帮忙,下面将对他进行详细介绍,现在这里先学习怎么实现把日志既要输出到控制台又要输出到文件的功能。
importlogging# 第一步,创建一个logger logger = logging.getLogger() logger.setLevel(logging.INFO)# Log等级总开关 # 第二步,创建一个handler,用于写入日志文件 logfile ='./log.txt'fh = logging.FileHandler(logfile, mode='a')# open的打开模式这里可以进行参考fh.setLevel(logging.DEBUG)# 输出到file的log等级的开关 # 第三步,再创建一个handler,用于输出到控制台 ch = logging.StreamHandler() ch.setLevel(logging.WARNING)# 输出到console的log等级的开关 # 第四步,定义handler的输出格式 formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s") fh.setFormatter(formatter) ch.setFormatter(formatter)# 第五步,将logger添加到handler里面 logger.addHandler(fh) logger.addHandler(ch)# 日志 logger.debug('这是 logger debug message') logger.info('这是 logger info message') logger.warning('这是 logger warning message') logger.error('这是 logger error message') logger.critical('这是 logger critical message')