#!/neo/opt/bin/python # log.py import sys, time, string DEV = "development" DEV_UPDATE = "update queries" DEV_SELECT = "select queries" DEV_REPORT = "report log" LOGGING_STATUS = { DEV : 1, DEV_UPDATE : 0, DEV_SELECT : 0, DEV_REPORT : 0} tstart = 0 def dlog(when,astr): global LOGGING_STATUS try: if LOGGING_STATUS[when]: log(astr) except KeyError: pass def tlog(astr): global tstart t = time.time() if tstart == 0: tstart = t time_stamp = "%5.5f" % (t-tstart) if len(astr): if astr[-1] == "\n": sys.stderr.write("[%s] %s" % (time_stamp, astr)) else: sys.stderr.write("[%s] %s\n" % (time_stamp, astr)) def orig_log(astr): if len(astr) > 1024: astr = astr[:1024] t = time.time() time_stamp = time.strftime("%m/%d %T", time.localtime(t)) if len(astr): if astr[-1] == "\n": sys.stderr.write("[%s] %s" % (time_stamp, astr)) else: sys.stderr.write("[%s] %s\n" % (time_stamp, astr)) # sys.stderr.flush() #---------------------------------------------------------------------- # static functions _gDebug = 0 _gFileDebug = 0 kBLACK = 0 kRED = 1 kGREEN = 2 kYELLOW = 3 kBLUE = 4 kMAGENTA = 5 kCYAN = 6 kWHITE = 7 kBRIGHT = 8 def ansicolor (str, fgcolor = None, bgcolor = None): o = "" if fgcolor: if fgcolor & kBRIGHT: bright = ';1' else: bright = '' o = o + '%c[3%d%sm' % (chr(27), fgcolor & 0x7, bright) if bgcolor: o = o + '%c[4%dm' % (chr(27), bgcolor) o = o + str if fgcolor or bgcolor: o = o + '%c[0m' % (chr(27)) return o def _log(*args): t = time.time() log_line = "" log_line = log_line + "[" + time.strftime("%m/%d %T", time.localtime(t)) + "] " l = [] for arg in args: l.append(str(arg)) log_line = log_line + string.join(l, " ") + "\n" sys.stderr.write(log_line) def warn(*args): apply(_log, args) def warnred(*args): args = tuple (["[31m"] + list(args) + ["[0m"]) apply(_log, args) def log(*args): apply(_log, args) def logred(*args): if _gDebug>=1: args = tuple (["[31m"] + list(args) + ["[0m"]) apply(_log, args) def debug(*args): if _gDebug>=2: apply(_log, args) def debugfull(): global _gDebug _gDebug = 2 def debugon(): global _gDebug _gDebug = 1 def debugoff(): global _gDebug _gDebug = 0