LogHandler.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. # -*- coding: utf-8 -*-
  2. """
  3. -------------------------------------------------
  4. File Name: LogHandler.py
  5. Description : 日志操作模块
  6. Author : JHao
  7. date: 2017/3/6
  8. -------------------------------------------------
  9. Change Activity:
  10. 2017/3/6: log handler
  11. 2017/9/21: 屏幕输出/文件输出 可选(默认屏幕和文件均输出)
  12. -------------------------------------------------
  13. """
  14. # __author__ = 'JHao'
  15. import os
  16. import logging
  17. from logging.handlers import TimedRotatingFileHandler
  18. # # 日志级别
  19. # CRITICAL = 50
  20. # FATAL = CRITICAL
  21. # ERROR = 40
  22. # WARNING = 30
  23. # WARN = WARNING
  24. # INFO = 20
  25. # DEBUG = 10
  26. # NOTSET = 0
  27. CURRENT_PATH = os.path.dirname(os.path.abspath(__file__))
  28. ROOT_PATH = os.path.join(CURRENT_PATH, os.pardir)
  29. LOG_PATH = os.path.join(ROOT_PATH, 'log')
  30. try:
  31. os.mkdir(LOG_PATH)
  32. except FileExistsError:
  33. pass
  34. class LogHandler(logging.Logger):
  35. """
  36. LogHandler
  37. """
  38. # def __init__(self, name, level=DEBUG, stream=True, file=True):
  39. # self.name = name
  40. # self.level = level
  41. # logging.Logger.__init__(self, self.name, level=level)
  42. # if stream:
  43. # self.__setStreamHandler__()
  44. # if file:
  45. # self.__setFileHandler__()
  46. # def __setFileHandler__(self, level=None):
  47. # """
  48. # set file handler
  49. # :param level:
  50. # :return:
  51. # """
  52. # file_name = os.path.join(LOG_PATH, '{name}.log'.format(name=self.name))
  53. # # 设置日志回滚, 保存在log目录, 一天保存一个文件, 保留15天
  54. # file_handler = TimedRotatingFileHandler(filename=file_name, when='D', interval=1, backupCount=15)
  55. # file_handler.suffix = '%Y%m%d.log'
  56. # if not level:
  57. # file_handler.setLevel(self.level)
  58. # else:
  59. # file_handler.setLevel(level)
  60. # formatter = logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
  61. #
  62. # file_handler.setFormatter(formatter)
  63. # self.file_handler = file_handler
  64. # self.addHandler(file_handler)
  65. #
  66. # def __setStreamHandler__(self, level=None):
  67. # """
  68. # set stream handler
  69. # :param level:
  70. # :return:
  71. # """
  72. # stream_handler = logging.StreamHandler()
  73. # formatter = logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
  74. # stream_handler.setFormatter(formatter)
  75. # if not level:
  76. # stream_handler.setLevel(self.level)
  77. # else:
  78. # stream_handler.setLevel(level)
  79. # self.addHandler(stream_handler)
  80. #
  81. # def resetName(self, name):
  82. # """
  83. # reset name
  84. # :param name:
  85. # :return:
  86. # """
  87. # self.name = name
  88. # self.removeHandler(self.file_handler)
  89. # self.__setFileHandler__()
  90. if __name__ == '__main__':
  91. log = LogHandler('test')
  92. log.info('this is a test msg')