open_toontown_panda3d/direct/src/directnotify/Notifier.py

128 lines
3.5 KiB
Python

"""Notifier module: contains methods for handling information output
for the programmer/user"""
from LoggerGlobal import *
class Notifier:
def __init__(self, name, logger=None):
"""__init__(self, string, Logger=None)
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"""
self.__name = name
if (logger==None):
self.__logger = defaultLogger
else:
self.__logger = logger
self.__verbose = 0
self.__warning = 1
self.__debug = 0
self.__logging = 0
def __str__(self):
"""__str__(self)
Print handling routine"""
return "%s: verbose = %d, warning = %d, debug = %d, logging = %d" % \
(self.__name, self.__verbose, self.__warning, self.__debug, self.__logging)
# error funcs
def error(self, errorString, exception=StandardError):
"""error(self, string, Exception=StandardError)
Raise an exception with given string and optional type:
Exception: error"""
self.__log(str(exception) + ": " + self.__name + ": " + errorString)
raise exception(errorString)
# warning funcs
def warning(self, warningString):
"""warning(self, string)
Issue the warning message if warn flag is on"""
if (self.__warning):
str = ':' + self.__name + '(warning): ' + warningString
self.__log(str)
print(str)
def setWarning(self, bool):
"""setWarning(self, int)
Enable/Disable the printing of warning messages"""
self.__warning = bool
def getWarning(self):
"""getWarning(self)
Return whether the printing of warning messages is on or off"""
return(self.__warning)
# debug funcs
def debug(self, debugString):
"""debug(self, string)
Issue the debug message if debug flag is on"""
if (self.__debug):
str = ':' + self.__name + '(debug): ' + debugString
self.__log(str)
print(str)
def setDebug(self, bool):
"""setDebug(self, int)
Enable/Disable the printing of debug messages"""
self.__debug = bool
def getDebug(self):
"""getDebug(self)
Return whether the printing of debug messages is on or off"""
return(self.__debug)
# info funcs
def info(self, infoString):
"""info(self, string)
Print the given informational string, if verbose flag is on"""
if (self.__verbose):
str = ':' + self.__name + '(info): ' + infoString
self.__log(str)
print(str)
def getVerbose(self):
"""getVerbose(self)
Return whether the printing of info messages is on or off"""
return(self.__verbose)
def setVerbose(self, bool):
"""setVerbose(self, int)
Enable/Disable informational message printing"""
self.__verbose = bool
# log funcs
def __log(self, logEntry):
"""__log(self, string)
Determine whether to send informational message to the logger"""
if (self.__logging):
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