X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Logger.py;fp=Logger.py;h=93bc12e40d8846ec1aeb70ed2a0e4bc93be6ac6f;hb=811a95d9a6a797149cdfc6a8ad9c6b2a779a87bc;hp=ab9861521059637ac34cd30fac240a3cc34a4b0e;hpb=8aab1c96c67b95d25fb175495894c38f82143cc9;p=audiocontrol.git diff --git a/Logger.py b/Logger.py index ab98615..93bc12e 100644 --- a/Logger.py +++ b/Logger.py @@ -2,13 +2,13 @@ import textwrap, time logger = None -def init(viewmanager, x, y, dx, dy): +def init(viewmanager, x, y, dx, dy, logfile=None): global logger - logger = Logger(viewmanager.win(), x, y, dx, dy) + logger = Logger(viewmanager.win(), x, y, dx, dy, logfile) class Logger(object): - def __init__(self, win, x, y, dx, dy): + def __init__(self, win, x, y, dx, dy, logfile=None): self._win = win.derwin(dy,dx,y,x) self._win.border() self._win.addstr(0,2,' Log ') @@ -17,12 +17,19 @@ class Logger(object): self._textwin.scrollok(1) self._wrapper = textwrap.TextWrapper(width = dx-4, subsequent_indent = ' '*4) + if logfile: + self._logfile = file(logfile,"a") + else: + self._logfile = None def log(self, src, msg): - lines = self._wrapper.wrap( - '[%s] (%s) %s' % (time.strftime("%H:%M:%S",time.localtime()),src, msg)) + text = '[%s] (%s) %s' % (time.strftime("%H:%M:%S",time.localtime()),src, msg) + if self._logfile: + self._logfile.write(text+"\n") + lines = self._wrapper.wrap(text) + lines = lines[max(0,len(lines)-self._textwin.getmaxyx()[0]):] self._textwin.scroll(len(lines)) - for i in range(len(lines)): + for i in range(min(len(lines),self._textwin.getmaxyx()[0]-2)): self._textwin.addstr(self._textwin.getmaxyx()[0]-len(lines)+i,0, lines[i]) self._textwin.nooutrefresh()