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