implemented #39
This commit is contained in:
parent
730288e284
commit
6ecbf314e8
40
Logger.py
40
Logger.py
|
@ -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()
|
5
main.py
5
main.py
|
@ -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()
|
||||
|
||||
#####################################################################
|
||||
|
||||
|
|
Loading…
Reference in New Issue