from pathlib import os import logging import sys from datetime import datetime def log_count(file_name=None): # 第一步,创建一个logger if not file_name: file_name = os.path.basename(__file__).split('.')[0] logger = logging.getLogger() logger.setLevel(logging.INFO) # Log等级总开关 # 第二步,创建一个handler,用于写入日志文件 logfile = 'logs\\{}_{}.log'.format(file_name, datetime.now().strftime('%Y-%m-%d')) current_path = os.path.dirname(os.path.realpath(sys.argv[0])) if not os.path.exists(os.path.join(current_path, 'logs')): os.makedirs(os.path.join(current_path, 'logs')) logfile_path = os.path.join(current_path, logfile) fh = logging.FileHandler(logfile_path, mode='a', encoding='utf-8') fh.setLevel(logging.DEBUG) # 用于写到file的等级开关 # 第三步,再创建一个handler,用于输出到控制台 ch = logging.StreamHandler() ch.setLevel(logging.INFO) # 输出到console的log等级的开关 # 第四步,定义handler的输出格式 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') fh.setFormatter(formatter) ch.setFormatter(formatter) # 第五步,将logger添加到handler里面 logger.addHandler(fh) logger.addHandler(ch) return logger