| Index: emcore/trunk/tools/emcore.py |
| — | — | @@ -65,26 +65,26 @@ |
| 66 | 66 | cmddict = Commandline.cmddict
|
| 67 | 67 | doc = getfuncdoc(cmddict)
|
| 68 | 68 | if not specific:
|
| 69 | | - logger.log("Please provide a command and (if needed) parameters as command line arguments\n\n")
|
| 70 | | - logger.log("Available commands:\n\n")
|
| | 69 | + logger.write("Please provide a command and (if needed) parameters as command line arguments\n\n")
|
| | 70 | + logger.write("Available commands:\n\n")
|
| 71 | 71 | else:
|
| 72 | | - logger.log("\n")
|
| | 72 | + logger.write("\n")
|
| 73 | 73 | for function in sorted(doc.items()):
|
| 74 | 74 | function = function[0]
|
| 75 | 75 | if specific == False or specific == function:
|
| 76 | | - logger.log(function + " ", 2)
|
| | 76 | + logger.write(function + " ", 2)
|
| 77 | 77 | for arg in doc[function]['args']:
|
| 78 | | - logger.log("<" + arg + "> ")
|
| | 78 | + logger.write("<" + arg + "> ")
|
| 79 | 79 | if doc[function]['kwargs']:
|
| 80 | 80 | for kwarg, kwvalue in doc[function]['kwargs'].iteritems():
|
| 81 | | - logger.log("[" + kwarg + " = " + str(kwvalue) + "] ")
|
| | 81 | + logger.write("[" + kwarg + " = " + str(kwvalue) + "] ")
|
| 82 | 82 | if doc[function]['varargs']:
|
| 83 | | - logger.log("<db1> ... <dbN>")
|
| | 83 | + logger.write("<db1> ... <dbN>")
|
| 84 | 84 | if docstring and doc[function]['documentation']:
|
| 85 | | - logger.log("\n")
|
| 86 | | - logger.log(doc[function]['documentation']+"\n", 4)
|
| 87 | | - logger.log("\n")
|
| 88 | | - logger.log("\n")
|
| | 85 | + logger.write("\n")
|
| | 86 | + logger.write(doc[function]['documentation']+"\n", 4)
|
| | 87 | + logger.write("\n")
|
| | 88 | + logger.write("\n")
|
| 89 | 89 |
|
| 90 | 90 | if errormsg:
|
| 91 | 91 | logger.error(str(errormsg)+"\n")
|
| — | — | @@ -390,7 +390,7 @@ |
| 391 | 391 | """
|
| 392 | 392 | while True:
|
| 393 | 393 | resp = self.emcore.usbcread()
|
| 394 | | - self.logger.log(resp.data)
|
| | 394 | + self.logger.write(resp.data)
|
| 395 | 395 | time.sleep(0.1 / resp.maxsize * (resp.maxsize - len(resp.data)))
|
| 396 | 396 |
|
| 397 | 397 | @command
|
| — | — | @@ -414,7 +414,7 @@ |
| 415 | 415 | bitmask = self._hexint(bitmask)
|
| 416 | 416 | while True:
|
| 417 | 417 | resp = self.emcore.cread()
|
| 418 | | - self.logger.log(resp.data)
|
| | 418 | + self.logger.write(resp.data)
|
| 419 | 419 | time.sleep(0.1 / resp.maxsize * (resp.maxsize - len(resp.data)))
|
| 420 | 420 |
|
| 421 | 421 | @command
|
| Index: emcore/trunk/tools/misc.py |
| — | — | @@ -31,12 +31,12 @@ |
| 32 | 32 |
|
| 33 | 33 | class Logger(object):
|
| 34 | 34 | """
|
| 35 | | - Simple stdout logger.
|
| | 35 | + Simple stdout/stderr/file logger.
|
| 36 | 36 | Loglevel 3 is most verbose, Loglevel 0: Only log something if there is an error.
|
| 37 | 37 | Loglevel -1 means that nothing is logged.
|
| 38 | | - The log function doesn't care about the loglevel and always logs to stdout.
|
| | 38 | + The write function doesn't care about the loglevel and always logs everything.
|
| 39 | 39 | """
|
| 40 | | - def __init__(self, loglevel = 2, target = "stdout", logfile = "tools.log"):
|
| | 40 | + def __init__(self, loglevel = 2, target = "stderr", logfile = "tools.log"):
|
| 41 | 41 | """
|
| 42 | 42 | loglevel: Possible values: 0 (only errors), 1 (warnings), 2 (info,
|
| 43 | 43 | recommended for production use), 3 and more (debug)
|
| — | — | @@ -47,13 +47,15 @@ |
| 48 | 48 | self.logfile = logfile
|
| 49 | 49 | self.target = target
|
| 50 | 50 |
|
| 51 | | - def log(self, text, indent = 0, target = None):
|
| | 51 | + def write(self, text, indent = 0, target = None):
|
| 52 | 52 | if self.loglevel >= 0:
|
| 53 | 53 | if target is None: target = self.target
|
| 54 | 54 | text = (indent * " ") + text
|
| 55 | 55 | text = text.replace("\n", "\n" + (indent * " "), text.count("\n") - 1)
|
| 56 | 56 | if target == "stdout":
|
| 57 | | - sys.stdout.write(text)
|
| | 57 | + sys.stderr.write(text)
|
| | 58 | + if target == "stderr":
|
| | 59 | + sys.stderr.write(text)
|
| 58 | 60 | elif target == "file":
|
| 59 | 61 | with open(self.logfile, 'a') as f:
|
| 60 | 62 | f.write(text)
|
| — | — | @@ -63,19 +65,19 @@ |
| 64 | 66 |
|
| 65 | 67 | def debug(self, text, indent = 0, target = None):
|
| 66 | 68 | if self.loglevel >= 3:
|
| 67 | | - self.log("DEBUG: " + text, indent, target)
|
| | 69 | + self.write("DEBUG: " + text, indent, target)
|
| 68 | 70 |
|
| 69 | 71 | def info(self, text, indent = 0, target = None):
|
| 70 | 72 | if self.loglevel >= 2:
|
| 71 | | - self.log(text, indent, target)
|
| | 73 | + self.write(text, indent, target)
|
| 72 | 74 |
|
| 73 | 75 | def warn(self, text, indent = 0, target = None):
|
| 74 | 76 | if self.loglevel >= 1:
|
| 75 | | - self.log("WARNING: " + text, indent, target)
|
| | 77 | + self.write("WARNING: " + text, indent, target)
|
| 76 | 78 |
|
| 77 | 79 | def error(self, text, indent = 0, target = None):
|
| 78 | 80 | if self.loglevel >= 0:
|
| 79 | | - self.log("ERROR: " + text, indent, target)
|
| | 81 | + self.write("ERROR: " + text, indent, target)
|
| 80 | 82 |
|
| 81 | 83 |
|
| 82 | 84 | class Bunch(dict):
|
| Index: emcore/trunk/tools/libemcore.py |
| — | — | @@ -1109,26 +1109,26 @@ |
| 1110 | 1110 | if sys.argv[1] == "gendoc":
|
| 1111 | 1111 | # Generates Documentation
|
| 1112 | 1112 | from misc import gendoc
|
| 1113 | | - logger.log("Generating documentation\n")
|
| | 1113 | + logger.write("Generating documentation\n")
|
| 1114 | 1114 | cmddict = {}
|
| 1115 | 1115 | for attr, value in Emcore.__dict__.iteritems():
|
| 1116 | 1116 | if getattr(value, 'func', False):
|
| 1117 | 1117 | if getattr(value.func, '_command', False):
|
| 1118 | 1118 | cmddict[value.func.__name__] = value
|
| 1119 | | - logger.log(gendoc(cmddict))
|
| | 1119 | + logger.write(gendoc(cmddict))
|
| 1120 | 1120 |
|
| 1121 | 1121 | elif sys.argv[1] == "malloctest":
|
| 1122 | 1122 | emcore = Emcore()
|
| 1123 | | - logger.log("Allocating 200 bytes of memory: ")
|
| | 1123 | + logger.write("Allocating 200 bytes of memory: ")
|
| 1124 | 1124 | addr = emcore.malloc(200)
|
| 1125 | | - logger.log("0x%x\n" % addr)
|
| 1126 | | - logger.log("Reallocating to 2000 bytes: ")
|
| | 1125 | + logger.write("0x%x\n" % addr)
|
| | 1126 | + logger.write("Reallocating to 2000 bytes: ")
|
| 1127 | 1127 | addr = emcore.realloc(addr, 2000)
|
| 1128 | | - logger.log("0x%x\n" % addr)
|
| 1129 | | - logger.log("Freeing 0x%x\n" % addr)
|
| | 1128 | + logger.write("0x%x\n" % addr)
|
| | 1129 | + logger.write("Freeing 0x%x\n" % addr)
|
| 1130 | 1130 | emcore.free(addr)
|
| 1131 | | - logger.log("Allocating 1000 bytes of memory aligned to 100 bytes: ")
|
| | 1131 | + logger.write("Allocating 1000 bytes of memory aligned to 100 bytes: ")
|
| 1132 | 1132 | addr = emcore.memalign(100, 1000)
|
| 1133 | | - logger.log("0x%x\n" % addr)
|
| 1134 | | - logger.log("Freeing 0x%x\n" % addr)
|
| | 1133 | + logger.write("0x%x\n" % addr)
|
| | 1134 | + logger.write("Freeing 0x%x\n" % addr)
|
| 1135 | 1135 | emcore.free(addr) |
| \ No newline at end of file |