Files
Pynomicon/classes/utils/logging.py
2021-01-22 10:16:17 -05:00

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())