Files
clients/WebBasedCrawler/base/logger.py
mjjo 1fb61f0b4c 트위터 크롤러 수정
- 프록시를 porxy2 db에 넣고 사용
2017-08-09 15:32:57 +09:00

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)