added debugStateCall and debugCall

This commit is contained in:
Dave Schuyler 2004-04-23 03:54:00 +00:00
parent 2a4893270b
commit f04fa19eef

View File

@ -9,10 +9,14 @@ class Notifier:
serverDelta = 0
def __init__(self, name, logger=None):
"""__init__(self, string, Logger=None)
"""
name is a string
logger is a Logger
Create a new instance of the Notifier class with a given name
and an optional Logger class for piping output to. If no logger
specified, use the global default"""
specified, use the global default
"""
self.__name = name
if (logger==None):
@ -47,14 +51,21 @@ class Notifier:
Return the time as a string suitable for printing at the
head of any notify message
"""
# for some strange reason, time.time() updates only once/minute if
# the task is out of focus on win32. time.clock doesnt have this prob
# the task is out of focus on win32. time.clock doesn't have this problem.
return time.strftime(":%m-%d-%Y %H:%M:%S ", time.localtime(time.time() + self.serverDelta))
def getOnlyTime(self):
"""
Return the time as a string.
The Only in the name is referring to not showing the date.
"""
return time.strftime("%H:%M:%S", time.localtime(time.time() + self.serverDelta))
def __str__(self):
"""__str__(self)
Print handling routine"""
"""
Print handling routine
"""
return "%s: info = %d, warning = %d, debug = %d, logging = %d" % \
(self.__name, self.__info, self.__warning, self.__debug, self.__logging)
@ -149,13 +160,14 @@ class Notifier:
return 1 # to allow assert(myNotify.info("blah"))
def getInfo(self):
"""getInfo(self)
"""
Return whether the printing of info messages is on or off"""
return(self.__info)
def setInfo(self, bool):
"""setInfo(self, int)
Enable/Disable informational message printing"""
"""
Enable/Disable informational message printing
"""
self.__info = bool
# log funcs
@ -166,19 +178,55 @@ class Notifier:
self.__logger.log(logEntry)
def getLogging(self):
"""getLogging(self)
"""
Return 1 if logging enabled, 0 otherwise"""
return (self.__logging)
def setLogging(self, bool):
"""setLogging(self, int)
"""
Set the logging flag to int (1=on, 0=off)"""
self.__logging = bool
def __print(self, string):
"""__print(self, string)
"""
Prints the string to standard output followed by a newline.
If we ever need to do something else than Python print, you
could put it here.
"""
print string
def debugStateCall(self, obj=None):
"""
If this notify is in debug mode, print the time of the
call followed by the [fsm state] notifier category and
the function call (with parameters).
"""
if (self.__debug):
state = ''
if obj is not None:
if hasattr(obj, 'fsm'):
#state = "%s=%s"%(obj.fsm.getName(), obj.fsm.getCurrentState().getName())
state = obj.fsm.getCurrentState().getName()
string = ":%s [%-7s] %s.%s"%(
self.getOnlyTime(),
state,
self.__name,
PythonUtil.traceParentCall())
self.__log(string)
self.__print(string)
return 1 # to allow assert(myNotify.debug("blah"))
def debugCall(self, debugString=''):
"""
"""
if (self.__debug):
string = ":%s %s %s.%s %s"%(
self.getOnlyTime(),
debugString,
self.__name,
PythonUtil.traceParentCall())
self.__log(string)
self.__print(string)
return 1 # to allow assert(myNotify.debug("blah"))