eccbdc0cc832e6d38f039d3a679ba667a05bdc03
[dbuscron] / dbuscron / logger.py
1
2 import sys
3 from datetime import datetime
4
5 class Logger(object):
6
7     __level = 1
8     __out = None
9     __name = None
10
11     __instance = None
12
13     DEBUG = 4
14     INFO = 3
15     WARNING = 2
16     ERROR = 1
17     PANIC = 0
18
19     def __new__(cls, name, out=sys.stderr):
20         if cls.__instance is None:
21             cls.__instance = super(Logger, cls).__new__(cls)
22         return cls.__instance
23
24     def __init__(self, name, out=sys.stderr):
25         self.__out = out
26         self.__name = name
27
28     def _get_level(self):
29         return self.__level
30     def _set_level(self, value):
31         self.__level = int(value)
32     level = property(_get_level, _set_level)
33
34     def log(self, level, message):
35         if level <= self.__level:
36             ts = datetime.now().strftime('%Y-%m-%d %H:%M')
37             self.__out.write('[%s] %s\n' % (ts, message))
38
39     def debug(self, message):
40         self.log(self.DEBUG, message)
41     
42     def info(self, message):
43         self.log(self.INFO, message)
44     
45     def warn(self, message):
46         self.log(self.WARNING, message)
47
48     def error(self, message):
49         self.log(self.ERROR, message)
50
51     def panic(self, message):
52         self.log(self.PANIC, message)
53