If you put the file in an instance variable, it seems to work.
import time class logfile(object): def __init__(self, *args, **kwargs): self.f = file(*args, **kwargs) def write(self, logstr): if logstr[-1] != '\n': logstr += '\n' self.f.write(time.strftime('%D-%T ') + str(logstr))
Unfortunately, it registers additional blank lines, here is one solution ( print '2', '3', '4' writes 3 entries):
class logfile(object): def __init__(self, *args, **kwargs): self.f = file(*args, **kwargs) self.c = False def write(self, logstr): self.c = not self.c if logstr[-1] != '\n': logstr += '\n' if self.c: self.f.write(time.strftime('%D-%T ') + str(logstr))
This log writes full lines (note: print "4\n", "5" is still 2 logarithms):
class logfile(object): def __init__(self, *args, **kwargs): self.f = file(*args, **kwargs) self.newline = True def write(self, logstr): if self.newline: self.f.write(time.strftime('%D-%T ')) self.f.write(logstr) self.newline = logstr[-1] == '\n'
Does anyone know how to handle complete print instructions in 1 loglines?
source share