import inspect import logging def Logger(log_level=logging.INFO): # Gets the name of the class / method from where this method is called logger_name = inspect.stack()[1][3] logger = logging.getLogger(logger_name) # By default, log all messages logger.setLevel(logging.DEBUG) file_handler = logging.FileHandler("{0}.log".format(logger_name), mode='w') file_handler.setLevel(log_level) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s: %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p') file_handler.setFormatter(formatter) logger.addHandler(file_handler) return logger