|
@@ -11,7 +11,7 @@
|
|
|
2017/9/21: 屏幕输出/文件输出 可选(默认屏幕和文件均输出)
|
|
2017/9/21: 屏幕输出/文件输出 可选(默认屏幕和文件均输出)
|
|
|
-------------------------------------------------
|
|
-------------------------------------------------
|
|
|
"""
|
|
"""
|
|
|
-__author__ = 'JHao'
|
|
|
|
|
|
|
+# __author__ = 'JHao'
|
|
|
|
|
|
|
|
import os
|
|
import os
|
|
|
|
|
|
|
@@ -19,15 +19,15 @@ import logging
|
|
|
|
|
|
|
|
from logging.handlers import TimedRotatingFileHandler
|
|
from logging.handlers import TimedRotatingFileHandler
|
|
|
|
|
|
|
|
-# 日志级别
|
|
|
|
|
-CRITICAL = 50
|
|
|
|
|
-FATAL = CRITICAL
|
|
|
|
|
-ERROR = 40
|
|
|
|
|
-WARNING = 30
|
|
|
|
|
-WARN = WARNING
|
|
|
|
|
-INFO = 20
|
|
|
|
|
-DEBUG = 10
|
|
|
|
|
-NOTSET = 0
|
|
|
|
|
|
|
+# # 日志级别
|
|
|
|
|
+# CRITICAL = 50
|
|
|
|
|
+# FATAL = CRITICAL
|
|
|
|
|
+# ERROR = 40
|
|
|
|
|
+# WARNING = 30
|
|
|
|
|
+# WARN = WARNING
|
|
|
|
|
+# INFO = 20
|
|
|
|
|
+# DEBUG = 10
|
|
|
|
|
+# NOTSET = 0
|
|
|
|
|
|
|
|
CURRENT_PATH = os.path.dirname(os.path.abspath(__file__))
|
|
CURRENT_PATH = os.path.dirname(os.path.abspath(__file__))
|
|
|
ROOT_PATH = os.path.join(CURRENT_PATH, os.pardir)
|
|
ROOT_PATH = os.path.join(CURRENT_PATH, os.pardir)
|
|
@@ -44,59 +44,59 @@ class LogHandler(logging.Logger):
|
|
|
LogHandler
|
|
LogHandler
|
|
|
"""
|
|
"""
|
|
|
|
|
|
|
|
- def __init__(self, name, level=DEBUG, stream=True, file=True):
|
|
|
|
|
- self.name = name
|
|
|
|
|
- self.level = level
|
|
|
|
|
- logging.Logger.__init__(self, self.name, level=level)
|
|
|
|
|
- if stream:
|
|
|
|
|
- self.__setStreamHandler__()
|
|
|
|
|
- if file:
|
|
|
|
|
- self.__setFileHandler__()
|
|
|
|
|
|
|
+ # def __init__(self, name, level=DEBUG, stream=True, file=True):
|
|
|
|
|
+ # self.name = name
|
|
|
|
|
+ # self.level = level
|
|
|
|
|
+ # logging.Logger.__init__(self, self.name, level=level)
|
|
|
|
|
+ # if stream:
|
|
|
|
|
+ # self.__setStreamHandler__()
|
|
|
|
|
+ # if file:
|
|
|
|
|
+ # self.__setFileHandler__()
|
|
|
|
|
|
|
|
- def __setFileHandler__(self, level=None):
|
|
|
|
|
- """
|
|
|
|
|
- set file handler
|
|
|
|
|
- :param level:
|
|
|
|
|
- :return:
|
|
|
|
|
- """
|
|
|
|
|
- file_name = os.path.join(LOG_PATH, '{name}.log'.format(name=self.name))
|
|
|
|
|
- # 设置日志回滚, 保存在log目录, 一天保存一个文件, 保留15天
|
|
|
|
|
- file_handler = TimedRotatingFileHandler(filename=file_name, when='D', interval=1, backupCount=15)
|
|
|
|
|
- file_handler.suffix = '%Y%m%d.log'
|
|
|
|
|
- if not level:
|
|
|
|
|
- file_handler.setLevel(self.level)
|
|
|
|
|
- else:
|
|
|
|
|
- file_handler.setLevel(level)
|
|
|
|
|
- formatter = logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
|
|
|
|
|
-
|
|
|
|
|
- file_handler.setFormatter(formatter)
|
|
|
|
|
- self.file_handler = file_handler
|
|
|
|
|
- self.addHandler(file_handler)
|
|
|
|
|
-
|
|
|
|
|
- def __setStreamHandler__(self, level=None):
|
|
|
|
|
- """
|
|
|
|
|
- set stream handler
|
|
|
|
|
- :param level:
|
|
|
|
|
- :return:
|
|
|
|
|
- """
|
|
|
|
|
- stream_handler = logging.StreamHandler()
|
|
|
|
|
- formatter = logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
|
|
|
|
|
- stream_handler.setFormatter(formatter)
|
|
|
|
|
- if not level:
|
|
|
|
|
- stream_handler.setLevel(self.level)
|
|
|
|
|
- else:
|
|
|
|
|
- stream_handler.setLevel(level)
|
|
|
|
|
- self.addHandler(stream_handler)
|
|
|
|
|
-
|
|
|
|
|
- def resetName(self, name):
|
|
|
|
|
- """
|
|
|
|
|
- reset name
|
|
|
|
|
- :param name:
|
|
|
|
|
- :return:
|
|
|
|
|
- """
|
|
|
|
|
- self.name = name
|
|
|
|
|
- self.removeHandler(self.file_handler)
|
|
|
|
|
- self.__setFileHandler__()
|
|
|
|
|
|
|
+ # def __setFileHandler__(self, level=None):
|
|
|
|
|
+ # """
|
|
|
|
|
+ # set file handler
|
|
|
|
|
+ # :param level:
|
|
|
|
|
+ # :return:
|
|
|
|
|
+ # """
|
|
|
|
|
+ # file_name = os.path.join(LOG_PATH, '{name}.log'.format(name=self.name))
|
|
|
|
|
+ # # 设置日志回滚, 保存在log目录, 一天保存一个文件, 保留15天
|
|
|
|
|
+ # file_handler = TimedRotatingFileHandler(filename=file_name, when='D', interval=1, backupCount=15)
|
|
|
|
|
+ # file_handler.suffix = '%Y%m%d.log'
|
|
|
|
|
+ # if not level:
|
|
|
|
|
+ # file_handler.setLevel(self.level)
|
|
|
|
|
+ # else:
|
|
|
|
|
+ # file_handler.setLevel(level)
|
|
|
|
|
+ # formatter = logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
|
|
|
|
|
+ #
|
|
|
|
|
+ # file_handler.setFormatter(formatter)
|
|
|
|
|
+ # self.file_handler = file_handler
|
|
|
|
|
+ # self.addHandler(file_handler)
|
|
|
|
|
+ #
|
|
|
|
|
+ # def __setStreamHandler__(self, level=None):
|
|
|
|
|
+ # """
|
|
|
|
|
+ # set stream handler
|
|
|
|
|
+ # :param level:
|
|
|
|
|
+ # :return:
|
|
|
|
|
+ # """
|
|
|
|
|
+ # stream_handler = logging.StreamHandler()
|
|
|
|
|
+ # formatter = logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
|
|
|
|
|
+ # stream_handler.setFormatter(formatter)
|
|
|
|
|
+ # if not level:
|
|
|
|
|
+ # stream_handler.setLevel(self.level)
|
|
|
|
|
+ # else:
|
|
|
|
|
+ # stream_handler.setLevel(level)
|
|
|
|
|
+ # self.addHandler(stream_handler)
|
|
|
|
|
+ #
|
|
|
|
|
+ # def resetName(self, name):
|
|
|
|
|
+ # """
|
|
|
|
|
+ # reset name
|
|
|
|
|
+ # :param name:
|
|
|
|
|
+ # :return:
|
|
|
|
|
+ # """
|
|
|
|
|
+ # self.name = name
|
|
|
|
|
+ # self.removeHandler(self.file_handler)
|
|
|
|
|
+ # self.__setFileHandler__()
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
if __name__ == '__main__':
|