代码:
import logging
def log():
# 创建一个logger
logger = logging.getLogger()
# Log等级总开关,低于此级别的都不会记录
logger.setLevel(logging.DEBUG)
# 自定义log目录
logfile = r'C:\Users\Administrator\Desktop\logs.log'
# 创建一个handler,用于写入日志文件
filehandler=logging.FileHandler(filename=logfile,encoding='utf-8')
# 用于写到file的等级开关
filehandler.setLevel(logging.DEBUG)
# 再创建一个handler,用于输出到控制台
consolehandler=logging.StreamHandler()
# 输出到console的log等级的开关
consolehandler.setLevel(logging.INFO)
# 定义handler的输出格式
formatter = logging.Formatter('%(asctime)s - %(thread)s - %(levelname)s - %(message)s')
filehandler.setFormatter(formatter)
consolehandler.setFormatter(formatter)
# 将logger添加到handler里面
logger.addHandler(filehandler)
logger.addHandler(consolehandler)
return logger
调用:
logger=log()
logger.debug("this is debug")
logger.info("this is info")
logger.warning("this is warning")
logger.error("this is error")
控制台定义的日记级别是INFO所以此处只显示INFO及以上日志
日志文件定义的是DEBUG,所以记录的是DEBUG及以上的日志