diff --git a/tools/python/jwutils/Object.py b/tools/python/jwutils/Object.py index b51d1e5..aade56b 100644 --- a/tools/python/jwutils/Object.py +++ b/tools/python/jwutils/Object.py @@ -3,15 +3,18 @@ import jwutils.log class Object(object): # export def __init__(): - self.log_level = jwutils.log.NOTICE + self.log_level = jwutils.log.level def log(self, prio, *args): + if self.log_level == jwutils.log.level: + jwutils.log.slog(prio, args) + return if prio <= self.log_level: msg = "" for count, thing in enumerate(args): - msg += ' ' + str(thing) + msg += ' ' + str(*thing) if len(msg): print msg[1:] def debug(self, *args): - self.log(DEBUG, args) + jwutils.log.slog(jwutils.log.DEBUG, args) diff --git a/tools/python/jwutils/log.py b/tools/python/jwutils/log.py index 642d505..1da98c0 100644 --- a/tools/python/jwutils/log.py +++ b/tools/python/jwutils/log.py @@ -1,7 +1,7 @@ import syslog EMERG = syslog.LOG_EMERG -ALER = syslog.LOG_ALERT +ALERT = syslog.LOG_ALERT CRIT = syslog.LOG_CRIT ERR = syslog.LOG_ERR WARNING = syslog.LOG_WARNING @@ -13,10 +13,53 @@ OFF = DEVEL + 1 level = NOTICE -def log(prio, *args): # export - if prio <= level: - msg = "" - for count, thing in enumerate(args): - msg += ' ' + str(thing) - if len(msg): - print msg[1:] +def slog(prio, *args): # export + if prio > level: + return + msg = "" + for count, things in enumerate(args): + #msg += ' ' + str(*thing) + for m in things: + msg += ' ' + str(m) + if len(msg): + print msg[1:] + +def parse_log_prio_str(prio): # export + try: + r = int(prio) + if r < 0 or r > DEVEL: + raise Exeption("Invalid log priority ", prio) + except ValueError: + map_prio_str_to_val = { + "EMERG" : EMERG, + "emerg" : EMERG, + "ALERT" : ALERT, + "alert" : ALERT, + "CRIT" : CRIT, + "crit" : CRIT, + "ERR" : ERR, + "err" : ERR, + "WARNING" : WARNING, + "warning" : WARNING, + "NOTICE" : NOTICE, + "notice" : NOTICE, + "INFO" : INFO, + "info" : INFO, + "DEBUG" : DEBUG, + "debug" : DEBUG, + "DEVEL" : DEVEL, + "devel" : DEVEL, + "OFF" : OFF, + "off" : OFF, + } + if prio in map_prio_str_to_val: + return map_prio_str_to_val[prio] + raise Exception("Unknown priority string \"", prio, "\"") + + +def set_level(level_): # export + global level + if isinstance(level_, basestring): + level = parse_log_prio_str(level_) + return + level = level_