import logging def getlogger(): # create a custom logger if no log handler logger = logging.getLogger(__name__) if not logger.hasHandlers(): logger.setLevel(logging.INFO) # create handlers warn_handler = logging.StreamHandler() info_handler = logging.StreamHandler() error_handler = logging.FileHandler('bot.log', mode='a') warn_handler.setLevel(logging.WARNING) error_handler.setLevel(logging.ERROR) info_handler.setLevel(logging.INFO) # create formatters warn_format = logging.Formatter( '%(asctime)s - %(funcName)s - %(levelname)s - %(message)s') error_format = logging.Formatter( '%(asctime)s - %(name)s - %(funcName)s - %(levelname)s - %(message)s') info_format = logging.Formatter( '%(asctime)s - %(levelname)s - %(message)s') # set formatter warn_handler.setFormatter(warn_format) error_handler.setFormatter(error_format) info_handler.setFormatter(info_format) # add handlers to logger logger.addHandler(warn_handler) logger.addHandler(error_handler) logger.addHandler(info_handler) return logger