#!/usr/bin/env python
# vim: set ts=4 sts=4 sw=4 textwidth=92:
+class MessageType (object):
+ Fatal = -1
+ Normal = 0
+ Verbose = 1
+ Debug = 2
+
class RarslaveMessage (object):
- def __init__ (self, msg, printquiet):
+ def __init__ (self, msg, type=MessageType.Normal):
self.msg = msg
- self.printquiet = printquiet
+ self.type = type
def __repr__ (self):
return "%s" % self.msg
+ def isFatal (self):
+ return self.type == MessageType.Fatal
+
+ def isNormal (self):
+ return self.type == MessageType.Normal
+
def isVerbose (self):
- # A message is verbose only if we should
- # print it when we are not printing quietly
- return not self.printquiet
+ return self.type == MessageType.Verbose
+
+ def isDebug (self):
+ return self.type == MessageType.Debug
class RarslaveLogger (object):
# This class will log multiple messages, one for each set that is operated on.
def __init__ (self):
self.__messages = []
- def addMessage (self, msg, printquiet=True):
- # Add a message to the dictionary, to be printed later.
- # The printquiet variable controls whether the message will be printed
- # normally, or only in verbose mode. The default is to print always.
+ def addMessage (self, msg, type=MessageType.Normal):
+ self.__messages.append (RarslaveMessage (msg, type))
+
+ def hasFatalMessages (self):
+ for m in self.__messages:
+ if m.isFatal ():
+ return True
+
+ return False
+
+ def hasNormalMessages (self):
+ for m in self.__messages:
+ if m.isNormal ():
+ return True
+
+ return False
+
+ def hasVerboseMessages (self):
+ for m in self.__messages:
+ if m.isVerbose ():
+ return True
+
+ return False
+
+ def hasDebugMessages (self):
+ for m in self.__messages:
+ if m.isDebug ():
+ return True
- self.__messages.append (RarslaveMessage (msg, printquiet))
+ return False
- def printAllMessages (self, verbose=False):
- for msg in self.__messages:
- # Skip verbose messages if we're not in verbose mode
- if msg.isVerbose() and not verbose:
- continue
+ def printAllMessages (self, level=MessageType.Normal):
+ # Print all messages with level upto and including $level.
+ for m in self.__messages:
+ if m.type <= level:
+ print m
- print msg
+ def printLoglevel (self, level=MessageType.Normal):
+ # Print all message with exactly the loglevel given
+ for m in self.__messages:
+ if m.type == level:
+ print m
def main ():
pass