1class NoOpLogger(object): 2 def critical(self, msg): 3 pass 4 5 def error(self, msg): 6 pass 7 8 def info(self, msg): 9 pass 10 11 def warning(self, msg): 12 pass 13 14 def debug(self, msg): 15 pass 16 17logger = NoOpLogger() 18_set_logger = False 19 20def set_logger(new_logger): 21 global _set_logger 22 if _set_logger: 23 raise Exception("Logger must be set at most once") 24 global logger 25 logger = new_logger 26 _set_logger = True 27 28def get_logger(): 29 return logger 30