implemented #39

This commit is contained in:
Manuel Kamper 2023-01-09 14:56:14 +00:00
parent 730288e284
commit 6ecbf314e8
2 changed files with 37 additions and 8 deletions

View File

@ -6,29 +6,35 @@ class Logger():
def __init__(self, hk_days):
self.hk_days = hk_days
self.TimeUtils = TimeUtils.TimeUtils()
self.tempLogFile = True
if not "logs" in os.listdir():
os.mkdir("/logs")
def LogMessage(self, message):
print(message)
lfname = "/logs/temp.txt"
if not self.tempLogFile:
dt = machine.RTC().datetime()
lfname = ("/logs/%04d-%02d-%02d.txt" % (dt[0], dt[1], dt[2]))
dt = machine.RTC().datetime()
file = open(("/logs/%04d-%02d-%02d.txt" % (dt[0], dt[1], dt[2])), "a")
file = open(lfname, "a")
file.write(self.TimeUtils.DateTimeNow() + ";" + message + "\n")
file.close()
def Housekeeping(self):
for file in os.listdir("/logs"):
if (file.endswith(".txt")):
if (file.endswith(".txt")) and not (file == "temp.txt"):
fd = file.split('.')[0].split('-')
if (self.TimeUtils.IsOlderThanDays(fd, self.hk_days)):
os.remove("/logs/" + file)
self.LogMessage("Housekeeping: deleted logfile " + file)
def LastLogs(self, lines):
dt = machine.RTC().datetime()
logfilename = ("/logs/%04d-%02d-%02d.txt" % (dt[0], dt[1], dt[2]))
logfilename = "/logs/temp.txt"
if not self.tempLogFile:
dt = machine.RTC().datetime()
logfilename = ("/logs/%04d-%02d-%02d.txt" % (dt[0], dt[1], dt[2]))
bufsize = 4096
print(os.stat(logfilename)[6])
fsize = os.stat(logfilename)[6]
iter = 0
with open(logfilename, "r") as logfile:
@ -40,5 +46,25 @@ class Logger():
logfile.seek(fsize - bufsize * iter)
fetched_lines.extend(logfile.readlines())
if len(fetched_lines) >= lines or logfile.tell() == 0:
#todo if lines from todays logfile are less than the number of requested lines, read missing lines from yesterdays logfile
return "<br>".join(fetched_lines[-lines:])
#todo if lines from todays logfile are less than the number of requested lines, read missing lines from yesterdays logfile - only if not tempLogFile!
return "<br>".join(fetched_lines[-lines:])
def MergeTempLogfile(self):
if not self.tempLogFile:
tempLines = 0
try:
with open("/logs/temp.txt", "r") as tempfile:
tlines = tempfile.readlines()
dt = machine.RTC().datetime()
with open(("/logs/%04d-%02d-%02d.txt" % (dt[0], dt[1], dt[2])), "a") as logfile:
for line in tlines:
tempLines += 1
logfile.write(line)
os.remove("/logs/temp.txt")
self.LogMessage("Merged " + str(tempLines) + " lines from temp-logfile into this logfile")
except OSError:
pass
def DisableTempLogfile(self):
self.tempLogFile = False
self.MergeTempLogfile()

View File

@ -432,10 +432,13 @@ def Boot():
if (Networking.Status()):
ShowText("Booting [1/3]", "Conn. Wifi: IP", Networking.GetIPAddress())
ShowText("Booting [2/3]", "NTP time:", configs['ntp_host'])
NTP.SetRTCTimeFromNTP(configs['ntp_host'], configs['gmt_offset'], configs['auto_summertime'])
if (NTP.SetRTCTimeFromNTP(configs['ntp_host'], configs['gmt_offset'], configs['auto_summertime'])):
Logger.DisableTempLogfile()
ShowText("Booting [2/3]", "NTP time:", TimeUtils.DateTimeNow())
else:
ShowText("Booting [1/3]", "Conn. Wifi:", "ERROR!")
time.sleep(3)
Reboot()
#####################################################################