82 lines
1.7 KiB
Python
82 lines
1.7 KiB
Python
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())
|