''' Log类 ''' __author__ = 'lmstack' import logging from logging import handlers import os class Mylog: def __init__(self, log_name='this_log', log_level = ''): self.logger = logging.getLogger(log_name) self._set_log_level(logging.INFO) if len(log_level) > 0: self._set_log_level(log_level) def get_logger(self): return self.logger def set_file_hl(self, file_name='all.log', log_level='info', size=1, backupCount=10): fh = handlers.RotatingFileHandler(file_name, maxBytes=size, backupCount=backupCount) fh_formatter = logging.Formatter('%(asctime)s:%(created)f:%(name)s:%(module)s:%(funcName)s:%(levelname)s:%(message)s') fh.setFormatter(fh_formatter) if len(log_level) > 0: if log_level == 'debug': fh.setLevel(logging.DEBUG) if log_level == 'info': fh.setLevel(logging.INFO) if log_level == 'warning': fh.setLevel(logging.WARNING) if log_level == 'error': fh.setLevel(logging.ERROR) self.logger.addHandler(fh) def set_stream_hl(self, log_level='info'): sh = logging.StreamHandler() sh_formatter = logging.Formatter('%(asctime)s:%(created)f:%(name)s:%(module)s:%(funcName)s:%(levelname)s:%(message)s') sh.setFormatter(sh_formatter) if len(log_level) > 0: if log_level == 'debug': sh.setLevel(logging.DEBUG) if log_level == 'info': sh.setLevel(logging.INFO) if log_level == 'warning': sh.setLevel(logging.WARNING) if log_level == 'error': sh.setLevel(logging.ERROR) self.logger.addHandler(sh) def _set_log_level(self, log_level): if log_level == 'debug': self.logger.setLevel(logging.DEBUG) if log_level == 'info': self.logger.setLevel(logging.INFO) if log_level == 'warning': self.logger.setLevel(logging.WARNING) if log_level == 'error': self.logger.setLevel(logging.ERROR)