Hauptmenü

Fhem-Log periodisch löschen

Begonnen von is2late, 07 Dezember 2025, 10:19:40

Vorheriges Thema - Nächstes Thema

betateilchen

Zitat von: is2late am 08 Dezember 2025, 11:38:03Und vermutlich liegt es an meinem begrenzten Verständnis, aber ich habe bei obigen unterschiedlichen Ansätzen immer noch nicht verstanden, wie ich das Fhem-Log zB zweitägig  automatisch löschen kann.

Nochmal:

  • lege das Logfile als Tageslog an.
  • setze das Attribut nrarchive auf 2

defmod Logfile FileLog ./log/fhem-%d.log Logfile
attr Logfile nrarchive 2
attr global nrarchive 2
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

is2late

Das ist wunderbar deutlich, danke Betateilchen!

Um das Logfile in dieser Form anlegen zu können,
muss ich das vorhandene erst löschen, richtig?
Dieses sieht so aus:
defmod Logfile FileLog ./log/fhem-%Y-%m.log fakelog
LG Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

betateilchen

Zitat von: is2late am 08 Dezember 2025, 15:51:10Um das Logfile in dieser Form anlegen zu können,
muss ich das vorhandene erst löschen, richtig?

Musst Du nicht, das übernimmt defmod für Dich.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

is2late

Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

is2late

#19
Hm, Überraschung...
Jetzt gibt es die Fehlermeldung

FileLog_logWrapper: bad arguments
"list logfile" führt zu
No device named logfile found
"list global" zeigt zwei unterschiedliche Definitionen. Aber welche ist richtig für mein "Ein-Tages-Log" bzw. welche muss ich ggf wo anpassen?
currentlogfile ./log/fhem-2025-12.log  oder
logfile    ./log/fhem-%Y-%m.log
Das vorhandene Log
defmod Logfile FileLog ./log/fhem-%Y-%m.log fakeloghatte ich überschrieben mit
defmod Logfile FileLog ./log/fhem-%d.log Logfile
LG
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

betateilchen

#20
Sorry, mein Fehler. Das Logfile ist wirklich sehr speziell...

Du musst vermutlich noch das Attribut im global device anpassen:

attr global logfile ./log/fhem-%d.log
Zitat von: is2late am 08 Dezember 2025, 17:59:36"list logfile" führt zu
No device named logfile found

Man achte auf Groß-/Kleinschreibung: Das in Deinem list gesuchte device heißt Logfile und nicht logfile.
Das Attribut "logfile" im global-device wird aber tatsächlich kleingeschrieben, weil das ein Attributname ist und kein Devicename.

Zusammengefasst:

defmod Logfile FileLog ./log/fhem-%d.log Logfile
attr Logfile nrarchive 2

attr global logfile ./log/fhem-%d.log
attr global nrarchive 2

Und nach den ganzen Änderungen den FHEM-Neustart nicht vergessen!
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Jamo

Bei mir funktioniert folgendes:
Zum löschen des Log:
set Logfile clear
Zum filtern unerwünschter Einträge lasse ich folgendes Shell Script ausführen. Per sed (als user fhem) werden alle Zeilen mit ebendiesen Einträgen gelöscht:

jamo@inuc:/opt/fhem$ cat ClearLog.sh
#!/bin/bash
cp /opt/fhem/log/fhem.log /opt/fhem/log/fhem.txt
sed -i -e "/Set Low Energy complete/d" -e "/Cannot fork: Cannot allocate memory/d" -e "/1: stacktrace:/d" -e "/Readout_Run_Web/d" -e "/Readout_Run_Web_LuaQuery/d" -e "/Readout_Response/d" -e "/Wide character in syswrite/d" /opt/fhem/log/fhem.txt
cp /opt/fhem/log/fhem.txt /opt/fhem/log/fhem.log
Das funktioniert bei mir gut.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence