3 from datetime import datetime
19 def __new__(cls, name, out=sys.stderr):
20 if cls.__instance is None:
21 cls.__instance = super(Logger, cls).__new__(cls)
24 def __init__(self, name, out=sys.stderr):
30 def _set_level(self, value):
31 self.__level = int(value)
32 level = property(_get_level, _set_level)
34 def log(self, level, *message):
35 if level <= self.__level:
36 msg = ' '.join(str(m) for m in message)
37 ts = datetime.now().strftime('%Y-%m-%d %H:%M')
38 self.__out.write('[%s] %s\n' % (ts, msg))
40 def debug(self, *message):
41 self.log(self.DEBUG, *message)
43 def info(self, *message):
44 self.log(self.INFO, *message)
46 def warn(self, *message):
47 self.log(self.WARNING, *message)
49 def error(self, *message):
50 self.log(self.ERROR, *message)
52 def panic(self, *message):
53 self.log(self.PANIC, *message)