import sys from time import strftime, time import csv import json # # Text logging # class LOGlog(): def __init__(self): self.filename = "" self.handle = 0 self.lineno = 0 def genname(dire="logs", basename="log-", ext="log"): return dire + '/' + basename + strftime("%Y%m%d-%H%M.") + ext def create(self, dire="logs", basename="log-", ext="log"): self.lineno = 0 self.handle = open(dire + "/" + basename + strftime("%Y%m%d-%H%M.") + ext, 'a') def open(self, filename): self.filename = filename self.handle = open(filename, 'r') def write(self, str): self.lineno = self.lineno + 1 self.handle.write(str + "\n") def read(self): self.lineno = self.lineno + 1 return self.handle.read() def close(self): self.handle.close() def lines(self): return self.lineno # # CSV logging # class CSVlog(LOGlog): def __init__(self): super().__init__() self.header = "" def create(self, dire="logs", basename="log-"): super().create(dire, basename, "csv") def open(self, filename): self.reader = csv.reader(super().filename) super().open(filename) def read(self): return self.reader.next(super().handle) def readall(self, csvfile): data = csv.reader(csvfile) csv.close() return list(data) # # JSON logging # class JSONlog(LOGlog): def __init__(self): super().__init__() def create(self, dire="logs", basename="log-"): super().create(dire, basename, "json") def open(self, filename): super().open(filename) def write(self, data): data['timestamp'] = time() super().write(json.dumps(data)) def read(self, ): return json.loads(super().read())