Guten Morgen!
Mein Log wird durch u.a. durch viele Fehlermeldungen der Photovoltaikanlage (die sich auch von den Spezialisten nicht lösen lassen) extrem vollgemüllt.
Ich würde das Log daher gern automatisch periodisch löschen, nämlich zB jeden zweiten Tag.
Hat jemand eine Idee, wie sich das lösen ließe? Wäre es einfacher, dies in Verbindung mit einem Neustart des Systems zu verbinden?
In Fhem nutze ich einen Code aus dem Forum "dellog", der prima funktioniert. Vielleicht lässt sich hierauf aufsetzen?
defmod c_dellog cmdalias dellog AS {qx(truncate $currlogfile --size 0);;Log 1, "Logfile gelöscht";;}Forums- und Internetrecherche war leider erfolglos.
Vielen Dank,
Ingo
Warum so kompliziert??
attr global nrarchive 2sollte das Problem mit Bordmitteln lösen.
Achtung:
Ggf. bei anderen Log-Files das Attribut entsprechend höher setzen.
Vielen Dank, Nobbynews!
Wenn ich das richtig verstehe, wird so die Anlage mehrerer Logarchive begrenzt.
Das hindert das (einzelne) Fhem-Log aber nicht, eine ganz enorme Größe zu erreichen, oder liege ich falsch?
LG
Zitat von: is2late am 07 Dezember 2025, 10:39:15Das hindert das (einzelne) Fhem-Log aber nicht, eine ganz enorme Größe zu erreichen, oder liege ich falsch?
Die Größe des Log-Files wird davon nicht beeinflusst.
Zitat von: is2late am 07 Dezember 2025, 10:19:40Fehlermeldungen der Photovoltaikanlage (die sich auch von den Spezialisten nicht lösen lassen)
Das halte ich, vorsichtig gesagt, für fragwürdig. Wo soll das diskutiert worden sein?
pah
ZitatDas halte ich, vorsichtig gesagt, für fragwürdig. Wo soll das diskutiert worden sein?
Oh, eine angenommene Herausforderung ;) Me alegro mucho!
Photovoltaik Problem Fehlermeldungen (https://forum.fhem.de/index.php?topic=126126.msg1336926#msg1336926)
Beitrag #30 und #294.
LG Ingo
Guten Morgen,
Zitat von: is2late am 07 Dezember 2025, 10:19:40Ich würde das Log daher gern automatisch periodisch löschen
So geht es nicht?
set Logfile clearGeht übrigens mit jedem TYPE=FileLog ;)
Gruß Otto
Lege doch einfach Tages-Logs an, dann funktioniert der Vorschlag mit nrarchive=2 genau so, wie Du es möchtest.
Oder im Device "global" gibt es das Attribut "ignoreRegexp"
Texte, wo dieses Regexp matcht, werden nicht geloggt. ^ und $ wird zum Regexp hinzugefügt, wie bei notify und FileLog.wenn sich die Ursache für die unerwünschten Einträge nicht abstellen lässt.
man kann auch die nervigen Einträge im Nachgang rauslöschen, nehme ich immer wenn ich was im Logfile schauen will es aber zu unübersichtlich geworden ist, Beispiel in der Kommandozeile für Zeilen mit Unknown code autocreate.
{qx(sed /Unknown.code.autocreate/d $currlogfile > temp.log ;; cp temp.log $currlogfile;; rm temp.log);;Log 1, "Logfile manipuliert"}
Man sollte aber nicht vergessen, das FileLog-device mit "set ... reopen" erneut in FHEM zu öffnen, wenn man es von außen manipuliert.
@betateilchen - irgendwie war ich schon gespannt, ob dieser Einwand kommt :)
Dazu kann ich folgendes berichten:
- das Device Logfile kennt leider kein reopen - warum weiß ich nicht. Jedes andere FileLog Device kennt reopen.
- Der Code oben ist etwas schräg, aber der funktioniert auch ohne reopen - warum weiß ich auch wieder nicht... :)
- ... wenn man ein sed -i auf $currlogfile anwendet, wird danach nicht mehr weiter ins Log geschrieben.
Zitat von: Otto123 am 07 Dezember 2025, 17:48:36das Device Logfile kennt leider kein reopen
Habe ich irgendwo etwas vom device "Logfile" geschrieben?
Zitat von: Otto123 am 07 Dezember 2025, 17:48:36warum weiß ich nicht. Jedes andere FileLog Device kennt reopen
Weil "Logfile" kein reguläres devices vom Type FileLog ist.
Rudi hat das in der Vergangenheit schon mehrfach im Forum erklärt.
ZitatLang:
Logfile ist als passiver Eintrag gedacht, es sollte nur das Code-Doppeln fuer die FHEM-Log Anzeige in FHEMWEB vermeiden.
Aus diesem Grund sind auch viele FileLog Attribute nicht erwünscht.
ja ich weiß es ja eigentlich :)
Ich hatte Deinen Beitrag als Antwort auf meine Codezeile verstanden, in der geht es ja um $currlogfile (Logfile/FHEM-Log)
Aber genau da ist der Punkt: für das FHEM-Log - wenn man das extern manipuliert - hat man kein reopen - oder sehe ich es nur nicht?
Es kann aber auch sein, ich habe das alles hier falsch verstanden. Ich dachte nur, weil es um Fehlermeldungen geht, muss es doch hier um das Logfile (FHEM-Log) gehen?
Hallo Zusammen,
recht herzlichen Dank für Eure Hilfe!
@Otto: Stimmt, gemeint ist das Fhem-Log.
Und 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.
Den Tipp von RalfRog - vielen Dank! - werde ich bezüglich der Photovoltaik-Fehlermeldungen ausprobieren.
LG Ingo
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
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
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.
Herzlichen Dank!!!
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
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.logZitat 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!
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.
Herzlichen Dank betateilchen!
Danke auch für deinen Tipp, Jamo; probiere ich aus!
Zitat von: is2late am 07 Dezember 2025, 11:01:37Oh, eine angenommene Herausforderung
Sicher nicht, ich bin nicht mehr in der Pubertät.
Zu dem betreffenden Thread will ich nur soviel sagen: Offenbar fehlerhafter Python-Code, der sich nicht an die FHEM-Konventionen hält.
LG
pah
ZitatSicher nicht, ich bin nicht mehr in der Pubertät.
Ich finde auch mit 71 Jahren Herausforderungen oft noch spannend.....
..und gebe das Ziel nicht auf, in jedem Alter in Teilbereichen besser zu werden.
Ich habe das Problem mit ChatGPT erörtert. Chaty hat offenbar die Lösung gefunden (https://forum.fhem.de/index.php?topic=126126.new#new)
Beitrag 308
Zitat von: is2late am 10 Dezember 2025, 18:24:18Chaty
Hmm, wer ein statistisch arbeitendes System mit einem Kosenamen belegt, sollte das mal mit einem Arzt seines Vertrauens erörtern.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 11 Dezember 2025, 11:58:35Hmm, wer ein statistisch arbeitendes System mit einem Kosenamen belegt, sollte das mal mit einem Arzt seines Vertrauens erörtern.
Das würde ich nicht pauschalisieren!
Ein "Kose"-Name kann auch sagen, dass man mit Herzblut an der Sache arbeitet.
Es gibt genug Menschen ohne solche Kose-Namen-Themen, die einen Arzt brauchen.