Hallo Rudi,
im Modul Logfile habe ich das Attribut narchive auf 3 gesetzt. Damit bekam ich immer die letzten 3 Tages-Logfiles angezeigt, jetzt sind es mittlerweile aber schon 9. Ich denke, ich bekomme die überflüssigen files händisch gelöscht, aber das ist dann vermutlich nicht im Sinne des Erfinders. Wissentlich habe ich hier keine Änderung vorgenommen.
Kannst du drüberschauen?
raw-Definition:
defmod Logfile FileLog ./log/fhem-%Y-%j.log fakelog
attr Logfile nrarchive 3
list: Internals:
DEF ./log/fhem-%Y-%j.log fakelog
FD 10
FUUID 5c8d3f36-f33f-e986-9478-9fb08a45f2176054
NAME Logfile
NR 25
NTFY_ORDER 50-Logfile
REGEXP fakelog
STATE active
TYPE FileLog
currentlogfile ./log/fhem-2020-062.log
logfile ./log/fhem-%Y-%j.log
READINGS:
2020-03-02 00:00:01 linesInTheFile 0
helper:
bm:
FileLog_Attr:
cnt 1
dmx -1000
dtot 0
dtotcnt 0
mTS 02.03. 11:58:48
max 3.91006469726562e-05
tot 3.91006469726562e-05
mAr:
set
Logfile
nrarchive
3
FileLog_Define:
cnt 1
dmx -1000
dtot 0
dtotcnt 0
mTS 02.03. 11:58:48
max 0.00381898880004883
tot 0.00381898880004883
mAr:
HASH(0x55c5933220c0)
Logfile FileLog ./log/fhem-%Y-%j.log fakelog
FileLog_Get:
cnt 2
dmx -1000
dtot 0
dtotcnt 0
mTS 07.03. 08:10:13
max 4.60147857666016e-05
tot 7.91549682617188e-05
mAr:
HASH(0x55c5933220c0)
Logfile
?
FileLog_Log:
cnt 679066
dmx -1000
dtot 0
dtotcnt 0
mTS 02.03. 14:11:13
max 0.0350768566131592
tot 107.204302549362
mAr:
HASH(0x55c5933220c0)
HASH(0x55c59398b260)
FileLog_Set:
cnt 56
dmx -1000
dtot 0
dtotcnt 0
mTS 04.03. 07:55:23
max 3.50475311279297e-05
tot 0.0013120174407959
mAr:
HASH(0x55c5933220c0)
Logfile
?
Attributes:
nrarchive 3
Viele Grüße Gisbert
Hallo Gisbert,
für dieses Logfile musst Du es meines Wissens in global setzen.
attr global nrarchive 3
ZitatHinweis: Werden diese Attribute als global instance gesetzt, hat das auschließlich auf das FHEM logfile Auswirkungen.
Gruß Otto
Hallo Otto,
ich habe die folgenden Tages-logfiles:
Zitat
fhem-2020-059.log
fhem-2020-060.log
fhem-2020-061.log
fhem-2020-062.log
fhem-2020-063.log
fhem-2020-064.log
fhem-2020-065.log
fhem-2020-066.log
fhem-2020-067.log
Eigentlich dürften es nur 3 Stück sein, da das Attribute narchive bei dem Device Logile auf 3 steht.
In den einzelnen Tages-logfiles steht als 1. Zeile für gewöhnlich, dass das viertletzte logfile gelöscht wurde. Das ist aber jetzt teilweise anders:
Zitat
fhem-2020-059.log --> kein Eintrag
fhem-2020-060.log --> 2020.02.29 00:00:01 2: Deleting fhem-2020-056.log
fhem-2020-061.log --> 2020.03.01 00:00:01 2: Deleting fhem-2020-057.log
fhem-2020-062.log --> 2020.03.02 00:00:01 2: Deleting fhem-2020-058.log
fhem-2020-063.log --> kein Eintrag
fhem-2020-064.log --> kein Eintrag
fhem-2020-065.log --> kein Eintrag
fhem-2020-066.log --> kein Eintrag
fhem-2020-067.log
Ich schließe daraus:
- es hat schon mal funktioniert
- es funktioniert jetzt nicht mehr, ohne dass ich hier auch nur das kleinste Fitzelchen geändert habe - ich schwöre, auf alles was dir und mir heilig im Sinne von FHEM ist
Irgendwie habe ich den Verdacht, dass es mit dem 29. Februar zu tun haben könnte.
Viele Grüße Gisbert
Könnte es am Schaltjahr liegen? (29. Febr.)
Ich nutze: /media/usbdisk/log/fhem-%Y-%m-%d.log fakelog da funktioniert es.
Zitat von: jkriegl am 07 März 2020, 12:40:23
Könnte es am Schaltjahr liegen? (29. Febr.)
Ich nutze: /media/usbdisk/log/fhem-%Y-%m-%d.log fakelog da funktioniert es.
Heißt das mit attribute narchive (z.B.) 3 werden ältere log-Dateien gelöscht?
ja
und da ich bei diesem log kein archivedir angegeben habe, sind diese weg!
Hallo jkriegel,
ich hab zunächst die überflüssigen logfiles gelöscht und schaue mal morgen, ob es sich wieder eingerenkt hat. Wenn nicht, dann stelle ich in global und Logfile auf deine Definition um.
Viele Grüße Gisbert
Hallo,
ohne dass ich irgendeine Änderung an meinen Definitionen gemacht habe, lediglich das händische Löschen gestern der überzähligen logfiles, bekomme ich heute als 1. Eintrag im neuen Tages-logfile:
Zitat2020.03.08 00:00:01 2: Deleting fhem-2020-064.log
Damit dürfte die Vermutung, dass es etwas mit dem Schalttag bzw. -jahr etwas zu tun hat weiter bekräftigt werden.
Viele Grüße Gisbert
Hallo Gisbert,
bei mir lief das problemlos durch. Das Schaltjahr hatte keinen Einfluß.
2020.03.04 00:00:01 2: Deleting fhem-2020-02-28.log
2020.03.05 00:00:01 2: Deleting fhem-2020-02-29.log
2020.03.06 00:00:01 2: Deleting fhem-2020-03-01.log
2020.03.07 00:00:01 2: Deleting fhem-2020-03-02.log
Definiert habe ich:
attr global logfile /Festplatte/FHEM/log/fhem-%Y-%m-%d.log
attr global nrarchive 5
Könnte also ggf. etwas mit Deiner DEF zu tun haben.
Zitat von: Gisbert am 08 März 2020, 09:27:21
Deleting fhem-2020-064.log
Wenn ich mich nicht verzählt habe der 4.3.2020 ?
Vor ein paar Tagen war mir im Log-File allerdings aufgefallen, dass Devicebezogene Log-Files erst mitten am Tag gelöscht wurden. Hintergrund war, dass dann erst wieder ein neuer Log-Eintrag im Device erzeugt wurde und dann das attr des Device gezogen hat.
Das sollte beim System-Log allerdings wg. der Einträge nach Mitternacht auszuschließen sein.
Norbert
Hallo Norbert und jkriegel,
ich werde wie von euch vorgeschlagen auf diese Definition umstellen, das scheint mir die zuverlässigste Methode zu sein, außerdem ist dann das Datum im Filenamen enthalten:
/opt/fhem/log/fhem-%Y-%m-%d.log
Viele Grüße Gisbert
Logfile ist ein "billiger Trick": so musste ich die FHEMWEB-Anzeige des FHEM-Logs nicht nochmal implementieren.
Dass Logfile+nrarchive die FHEM-Logs loescht, ueberrascht mich einerseits (so war das nicht geplant), andererseits spricht laut Code nichts dagegen, ich habe nach Durchsicht keinen Grund gefunden, warum es bei Dir nicht lief.
Ich empfehle attr global nrarchive zu setzen.
Wenn Du der Ansicht bist, dass wir das Problem mit Logfile loesen sollten (sollte schliesslich funktionieren), dann muesste man in etwa Folgendes machen:
- per fhemdebug timerList pruefen, ob FileLog_dailySwitch registriert ist
- am Anfang der Funktionen FileLog_dailySwitch, FileLog_Switch und HandleArchiving eine Log 1, "<FNNAME>"; Zeile einfuegen, bei den letzten beiden Funktionen mit "<FNNAME> $log" (und FHEM neu starten)
- warten, bis eine Datei _nicht_ geloescht wird, und das FHEM-Log untersuchen.
Zitat von: rudolfkoenig am 08 März 2020, 12:05:49
Logfile ist ein "billiger Trick": so musste ich die FHEMWEB-Anzeige des FHEM-Logs nicht nochmal implementieren.
Dass Logfile+nrarchive die FHEM-Logs loescht, ueberrascht mich einerseits (so war das nicht geplant), andererseits spricht laut Code nichts dagegen, ich habe nach Durchsicht keinen Grund gefunden, warum es bei Dir nicht lief.
Ich empfehle attr global nrarchive zu setzen.
Wenn Du der Ansicht bist, dass wir das Problem mit Logfile loesen sollten (sollte schliesslich funktionieren), dann muesste man in etwa Folgendes machen:
- per fhemdebug timerList pruefen, ob FileLog_dailySwitch registriert ist
- am Anfang der Funktionen FileLog_dailySwitch, FileLog_Switch und HandleArchiving eine Log 1, "<FNNAME>"; Zeile einfuegen, bei den letzten beiden Funktionen mit "<FNNAME> $log" (und FHEM neu starten)
- warten, bis eine Datei _nicht_ geloescht wird, und das FHEM-Log untersuchen.
Hallo Rudi,
attr global nrarchive - setze ich um.
Wenn Du der Ansicht bist, dass wir das Problem mit Logfile loesen sollten - lieber nicht, es sein denn du willst mich in eine Krise stürzen, deine Vorschläge kann ich nur schwerlich umsetzen.
Vieien Dank
Gisbert