[RARSLAVE] Add debug logging messages
[rarslave2.git] / RarslaveLogger.py
1 #!/usr/bin/env python
2 # vim: set ts=4 sts=4 sw=4 textwidth=92:
3
4 class MessageType (object):
5         Fatal = -1
6         Normal = 0
7         Verbose = 1
8         Debug = 2
9
10 class RarslaveMessage (object):
11         def __init__ (self, msg, type=MessageType.Normal):
12                 self.msg = msg
13                 self.type = type
14
15         def __repr__ (self):
16                 return "%s" % self.msg
17
18         def isFatal (self):
19                 return self.type == MessageType.Fatal
20
21         def isNormal (self):
22                 return self.type == MessageType.Normal
23
24         def isVerbose (self):
25                 return self.type == MessageType.Verbose
26
27         def isDebug (self):
28                 return self.type == MessageType.Debug
29
30 class RarslaveLogger (object):
31         # This class will log multiple messages, one for each set that is operated on.
32         # It will then be able to print all of them out.
33
34         def __init__ (self):
35                 self.__messages = []
36
37         def addMessage (self, msg, type=MessageType.Normal):
38                 self.__messages.append (RarslaveMessage (msg, type))
39
40         def hasFatalMessages (self):
41                 for m in self.__messages:
42                         if m.isFatal ():
43                                 return True
44
45                 return False
46
47         def hasNormalMessages (self):
48                 for m in self.__messages:
49                         if m.isNormal ():
50                                 return True
51
52                 return False
53
54         def hasVerboseMessages (self):
55                 for m in self.__messages:
56                         if m.isVerbose ():
57                                 return True
58
59                 return False
60
61         def hasDebugMessages (self):
62                 for m in self.__messages:
63                         if m.isDebug ():
64                                 return True
65
66                 return False
67
68         def printAllMessages (self, level=MessageType.Normal):
69                 # Print all messages with level upto and including $level.
70                 for m in self.__messages:
71                         if m.type <= level:
72                                 print m
73
74         def printLoglevel (self, level=MessageType.Normal):
75                 # Print all message with exactly the loglevel given
76                 for m in self.__messages:
77                         if m.type == level:
78                                 print m
79
80 def main ():
81         pass
82
83 if __name__ == '__main__':
84         main ()
85