#!/usr/bin/python # coding=utf-8 import os from logging.handlers import TimedRotatingFileHandler import logging import configparser config = configparser.ConfigParser() # 创建对象 config.read("config/configure.ini", encoding="utf-8") # 读取配置文件,如果配置文件不存在则创建 """ 自定义日志处理 """ class LogFactory(object): @staticmethod def getLogger(log_name,log_level=None): if log_level is None: log_level = LogFactory.getLogLevel(getLevel()) logger = logging.getLogger(log_name) path = getPath() isExists=os.path.exists(path) if not isExists: os.makedirs(path) log_file = os.path.join(path, '{}.log'.format(log_name)) if len(logger.handlers) <= 0: handler = TimedRotatingFileHandler(log_file, when='D', interval=1) else: handler = logger.handlers[0] formatter = logging.Formatter("%(asctime)s-%(thread)d-%(filename)s-%(levelname)s-%(message)s", "%Y-%m-%d %H:%M:%S") handler.setFormatter(formatter) logger.addHandler(handler) logger.setLevel(log_level) return logger @staticmethod def getLogLevel(log_level): log_level = getattr(logging, log_level.upper(), None) if log_level is None: raise Exception("No such log level.") return log_level def getPath(): import sys process_order = sys.argv[1] if len(sys.argv) > 1 else None logpath = config.get('logger', "logpath") logpath = logpath.rstrip("/") if process_order is None: return logpath return logpath def getLevel(): return config.get('logger', "level")