BaseLog.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. # -*- coding:utf-8 -*-
  2. """
  3. 注:私有变量和函数,前面加双下划线(不要在后面也加双下划线);
  4. """
  5. import os
  6. import sys
  7. import time
  8. # 使用inspect模块动态获取当前运行的函数名
  9. import inspect
  10. # 日期头文件;
  11. from datetime import datetime
  12. '''
  13. CBaseLog:日志基类
  14. inspect.stack()[0][3]:获取当前函数的名称;
  15. inspect.stack()[1][3]:获取当前函数的上一层函数的名称;
  16. inspect.stack()[2][3]:获取当前函数的上上一层函数的名称;
  17. '''
  18. class CBaseLog:
  19. def __init__(self):
  20. self.__enableDebug = True
  21. self.__enableInfo = True
  22. self.__enableWarn = True
  23. self.__enableError = True
  24. self.__enableLog = True
  25. # 如果有配置文件,加载;
  26. self.__loadConfig()
  27. def __loadConfig(self):
  28. pass
  29. def __printlog(self, msg):
  30. # 时间/内容;
  31. print("%s %s") % (datetime.now().strftime('%Y-%m-%d %H:%M:%S'), msg)
  32. def debug(self, msg):
  33. if self.__enableDebug:
  34. # 类型/类名:函数/内容
  35. log_str = "\033[32m【DEBUG】<%s::%s> %s \033[0m" % (self.__class__.__name__, inspect.stack()[1][3], msg)
  36. self.__printlog(log_str)
  37. def info(self, msg):
  38. if self.__enableInfo:
  39. # 类型/类名:函数/内容
  40. log_str = "\033[33m【INFO】<%s::%s> %s \033[0m" % (self.__class__.__name__, inspect.stack()[1][3], msg)
  41. self.__printlog(log_str)
  42. def warn(self, msg):
  43. if self.__enableWarn:
  44. # 类型/类名:函数/内容
  45. log_str = "\033[34m【WARN】<%s::%s> %s \033[0m" % (self.__class__.__name__, inspect.stack()[1][3], msg)
  46. self.__printlog(log_str)
  47. def error(self, msg):
  48. if self.__enableError:
  49. # 类型/类名:函数/内容
  50. log_str = "\033[31m【ERROR】<%s::%s> %s \033[0m" % (self.__class__.__name__, inspect.stack()[1][3], msg)
  51. self.__printlog(log_str)
  52. def log(self, msg):
  53. if self.__enableLog:
  54. # 类型/类名/内容
  55. log_str = "\033[35m【LOG】<%s::%s> %s \033[0m" % (self.__class__.__name__, inspect.stack()[1][3], msg)
  56. self.__printlog(log_str)
  57. if __name__ == "__main__":
  58. pass