### # # Copyright Alan Kennedy. # # You may contact the copyright holder at this uri: # # http://www.xhaus.com/contact/modjy # # The licence under which this code is released is the Apache License v2.0. # # The terms and conditions of this license are listed in a file contained # in the distribution that also contained this file, under the name # LICENSE.txt. # # You may also read a copy of the license at the following web address. # # http://modjy.xhaus.com/LICENSE.txt # ### import java import sys DEBUG = 'debug' INFO = 'info' WARN = 'warn' ERROR = 'error' FATAL = 'fatal' levels_dict = {} ix = 0 for level in [DEBUG, INFO, WARN, ERROR, FATAL, ]: levels_dict[level]=ix ix += 1 class modjy_logger: def __init__(self, context): self.log_ctx = context self.format_str = "%(lvl)s:\t%(msg)s" self.log_level = levels_dict[DEBUG] def _log(self, level, level_str, msg, exc): if level >= self.log_level: msg = self.format_str % {'lvl': level_str, 'msg': msg, } if exc: # java.lang.System.err.println(msg, exc) self.log_ctx.log(msg, exc) else: # java.lang.System.err.println(msg) self.log_ctx.log(msg) def debug(self, msg, exc=None): self._log(0, DEBUG, msg, exc) def info(self, msg, exc=None): self._log(1, INFO, msg, exc) def warn(self, msg, exc=None): self._log(2, WARN, msg, exc) def error(self, msg, exc=None): self._log(3, ERROR, msg, exc) def fatal(self, msg, exc=None): self._log(4, FATAL, msg, exc) def set_log_level(self, level_string): try: self.log_level = levels_dict[level_string] except KeyError: raise BadParameter("Invalid log level: '%s'" % level_string) def set_log_format(self, format_string): # BUG! Format string never actually used in this function. try: self._log(debug, "This is a log formatting test", None) except KeyError: raise BadParameter("Bad format string: '%s'" % format_string)