将日志内容输出到日志文件和控制台,先导入相关模块。
import os import logging import time import sys
设置log的文件夹路径,并判断log文件夹是否存在,若不存在则创建。
PROJECT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)) LOG_DIR = os.path.join(PROJECT_DIR,'log') if not os.path.exists(LOG_DIR): os.makedirs(LOG_DIR)
写成一个方法,方便使用,第二个参数默认为False,若设置为True,则将日志打印到控制台。
def init_log(logtype, stdout=False): name = os.path.basename(__file__) logger = logging.getLogger(name) logger.setLevel(logtype) log_base_name = LOG_DIR + '/' + os.path.splitext(name)[0] +'_' + time.strftime("%Y-%m-%d", time.localtime()) formatter = logging.Formatter('%(asctime)s - %(filename)s - L%(lineno)d - %(levelname)s : %(message)s') fh = logging.FileHandler(log_base_name + '.txt') fh.setFormatter(formatter) logger.addHandler(fh) if stdout == True: st = logging.StreamHandler(sys.stdout) st.setFormatter(formatter) logger.addHandler(st) return logger