# -*- coding:utf-8 -*- """ 注:私有变量和函数,前面加双下划线(不要在后面也加双下划线); """ import os import sys import time # 使用inspect模块动态获取当前运行的函数名 import inspect # 日期头文件; from datetime import datetime ''' CBaseLog:日志基类 inspect.stack()[0][3]:获取当前函数的名称; inspect.stack()[1][3]:获取当前函数的上一层函数的名称; inspect.stack()[2][3]:获取当前函数的上上一层函数的名称; ''' class CBaseLog: def __init__(self): self.__enableDebug = True self.__enableInfo = True self.__enableWarn = True self.__enableError = True self.__enableLog = True # 如果有配置文件,加载; self.__loadConfig() def __loadConfig(self): pass def __printlog(self, msg): # 时间/内容; print("%s %s") % (datetime.now().strftime('%Y-%m-%d %H:%M:%S'), msg) def debug(self, msg): if self.__enableDebug: # 类型/类名:函数/内容 log_str = "\033[32m【DEBUG】<%s::%s> %s \033[0m" % (self.__class__.__name__, inspect.stack()[1][3], msg) self.__printlog(log_str) def info(self, msg): if self.__enableInfo: # 类型/类名:函数/内容 log_str = "\033[33m【INFO】<%s::%s> %s \033[0m" % (self.__class__.__name__, inspect.stack()[1][3], msg) self.__printlog(log_str) def warn(self, msg): if self.__enableWarn: # 类型/类名:函数/内容 log_str = "\033[34m【WARN】<%s::%s> %s \033[0m" % (self.__class__.__name__, inspect.stack()[1][3], msg) self.__printlog(log_str) def error(self, msg): if self.__enableError: # 类型/类名:函数/内容 log_str = "\033[31m【ERROR】<%s::%s> %s \033[0m" % (self.__class__.__name__, inspect.stack()[1][3], msg) self.__printlog(log_str) def log(self, msg): if self.__enableLog: # 类型/类名/内容 log_str = "\033[35m【LOG】<%s::%s> %s \033[0m" % (self.__class__.__name__, inspect.stack()[1][3], msg) self.__printlog(log_str) if __name__ == "__main__": pass