X-Git-Url: https://www.irasnyder.com/gitweb/?p=rarslave2.git;a=blobdiff_plain;f=RarslaveLogger.py;h=d60b105e7883c36868166282d6a8d88255d1537f;hp=06b59a6cccb13e9ab60c158d03f5ee1ff763e83f;hb=988048e3732e2bafcaddda1b918f5f2b9af2bf02;hpb=38940fb246daaa0ebc7273e789bdcfbf5148a271 diff --git a/RarslaveLogger.py b/RarslaveLogger.py index 06b59a6..d60b105 100644 --- a/RarslaveLogger.py +++ b/RarslaveLogger.py @@ -1,18 +1,31 @@ #!/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. @@ -21,20 +34,48 @@ class RarslaveLogger (object): 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