logging 记录日志

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

你可能感兴趣的:(python)