#!/usr/bin/python
# -*- coding: UTF-8 -*-
import logging
# logging 学习网页:https://www.cnblogs.com/nancyzhu/p/8551506.html
class log():
def __init__(self, level="DEBUG"):
# 1、创建日志器
# 创建日志对象
# logSetting是name,可有可无,若无,则默认=root
self.logger=logging.getLogger("logSetting")
self.logger.setLevel(level) # 默认输出等级为warning,设置成debug才会全部输出;DEBUG一定要大写
def console_handle(self,level="DEBUG"):
# 2、创建控制台处理器
console_handler=logging.StreamHandler()
console_handler.setLevel(level)
return console_handler
def file_handle(self,level="INFO"):
# 2、创建文本处理器
# 在当前路径下生成log.txt,并把记录追加进去保存
file_handler=logging.FileHandler("./log.txt", mode="a", encoding="utf-8")
file_handler.setFormatter(self.get_formatter())
file_handler.setLevel(level)
return file_handler
def get_formatter(self):
fmtInit="%(asctime)s-%(name)s: %(message)s"
fileFmt=logging.Formatter(fmt=fmtInit)
return fileFmt
# 3、定义控制台日志输出等级
# file_handler.setLevel(level="INFO", format=fileFmt) # INFO一定要大写,这里与logger的等级对比,谁比较高,则按谁的等级输出
def get_log(self):
# 4、日志器添加控制台处理器
self.logger.addHandler(self.console_handle())
# 4、日志器添加文件处理器
self.logger.addHandler(self.file_handle())
return self.logger
调用:
# 实例化log
log = log()
outLog = log.get_log()
outLog.info("开始读取Excel数据") # 会将"开始读取Excel数据"输出到控制台,和保存到log.txt 去