62 lines
1.8 KiB
Python
62 lines
1.8 KiB
Python
import logging
|
|
import logging.handlers
|
|
import enum
|
|
import datetime
|
|
import base.baseclasses
|
|
import threading
|
|
|
|
|
|
class CustomFormatter(logging.Formatter):
|
|
def format(self, record):
|
|
# msg_prefix = '[{}] [{}} [{}] '.format(self.formatTime(record, self.datefmt), threading.current_thread().ident, record.levelname)
|
|
# record.msg = msg_prefix + record.msg
|
|
# record.msg = '[%s] %s' % (threading.current_thread().ident, record.msg)
|
|
return super(CustomFormatter, self).format(record)
|
|
|
|
|
|
logger = logging.getLogger('mylogger')
|
|
# formatter = logging.Formatter('[ %(asctime)s][%(threadName)s][%(levelname)s][%(filename)s(%(lineno)s)] > %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
|
|
# formatter = CustomFormatter('[ %(asctime)s][%(thread)s][%(levelname)s][%(pathname)s(%(lineno)s)]\n> %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
|
|
formatter = CustomFormatter(datefmt='%Y-%m-%d %H:%M:%S')
|
|
|
|
|
|
logging.handlers.RotatingFileHandler('crawler.log')
|
|
|
|
file_handler = logging.FileHandler('{}.log'.format(datetime.datetime.now().strftime('%Y-%m-%d')))
|
|
file_handler.setLevel(logging.DEBUG)
|
|
file_handler.setFormatter(formatter)
|
|
|
|
debug_stream_handler = logging.StreamHandler()
|
|
debug_stream_handler.setLevel(logging.DEBUG)
|
|
debug_stream_handler.setFormatter(formatter)
|
|
|
|
normal_stream_handler = logging.StreamHandler()
|
|
normal_stream_handler.setLevel(logging.INFO)
|
|
|
|
logger.addHandler(file_handler)
|
|
# if base.baseclasses.is_debug:
|
|
# logger.addHandler(debug_stream_handler)
|
|
# else:
|
|
# logger.addHandler(normal_stream_handler)
|
|
|
|
|
|
class LogLevel(enum.Enum):
|
|
DEBUG = 1
|
|
INFO = 2
|
|
WARNING = 3
|
|
ERROR = 4
|
|
CRITICAL = 5
|
|
|
|
|
|
def log(msg, level=LogLevel.INFO):
|
|
if level == LogLevel.DEBUG:
|
|
logger.debug(msg)
|
|
elif level == LogLevel.INFO:
|
|
logger.info(msg)
|
|
elif level == LogLevel.WARNING:
|
|
logger.warning(msg)
|
|
elif level == LogLevel.ERROR:
|
|
logger.error(msg)
|
|
elif level == LogLevel.CRITICAL:
|
|
logger.critical(msg)
|