FHEM Filelog und das disable Attribut

Begonnen von P.A.Trick, 11 Oktober 2015, 11:16:35

Vorheriges Thema - Nächstes Thema

P.A.Trick

Mir ist heute aufgefallen, dass Filelogs die mit dem disable Attribut (1) deaktiviert sind, trotzdem ein Filehandle haben!?
Ich dachte wenn die abegschaltet werden, dass sie dann auch keine Ressourcen im System (und sei es nur durch offen Filehandles) belegen? Kann ich sie "richtig" deaktivieren? (ausser in der fhem.cfg auszukommentieren?)
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

rudolfkoenig

Nicht das ich es wuesste.
Hast du dadurch ein konkretes Problem?

P.A.Trick

Nein aber zum einen nerven mich die 0 Byte Dateien im Logverzeichnis und zum anderen sind es unnötige Ressourcen die im System belegt werden. Ich lasse die Filelog Definition immer zum Debuggen in der DEF um bei evt. Fehlern das Log zu aktivieren!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

mimue

Ich versuche gerade mein FHEM von fhem.cfg und Logfiles auf configDB und logDB aufzurüsten. Dabei ist mir der Sachverhalt auch aufgefallen. Ich unterstütze P.A.Tricks Vorschlag.

(Ich habe auch keine konkreten Probleme wenn jemand bei Rot über die Strasse geht ;-) )
Gigabyte Brix, Arch Linux, CUL_MAX, TCM310, HM-Lan, LevelJET, VIERA, Fritz AHA, Fritz RC, FBDECT, NetIO, Alexa, Netatmo Presence

betateilchen

Das derzeitige Verhalten finde ich völlig in Ordnung und auch für Debugging Zwecke durchaus hilfreich.

Das Attribut "disable" verhindert ja per Definition nicht, dass ein FileLog device (und damit das File im Dateisystem) angelegt werden.
Das Attribut sorgt einfach dafür, dass nichts in das FileLog geschrieben wird.
Das Verhalten ist übrigens in vielen anderen Modulen ebenfalls so umgesetzt.

Der Vorteil des implementierten Verhaltens: man kann das Logging z.B. zum Debugging jederzeit und vorübergehend deaktivieren und dann auch wieder reaktivieren, ohne dass es eines FHEM Neustarts bedarf. Hilfreich ist das Ganze in solchen Fällen, in denen irgendein device (oder Modul) durchdreht und das FileLog flutet. Für die Fehlersuche kann es dann durchaus helfen, das Schreiben in die Datei einfach unterbinden zu können.

Wer überhaupt nicht in das Log schreiben will, soll das device erst gar nicht anlegen. Und wenn man ein Logfile für Debugginzwecke dann doch braucht, ist es ja in weniger als 10 Sekunden per define angelegt.


Aus diesen Gründen würde ich es begrüßen, wenn das Verhalten so bleibt, wie es derzeit ist.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mimue

Zitat von: betateilchen am 06 September 2020, 19:28:41
Das Attribut sorgt einfach dafür, dass nichts in das FileLog geschrieben wird.
Das Verhalten ist übrigens in vielen anderen Modulen ebenfalls so umgesetzt.

Es war schon immer ein gutes Totschlagargument, daß andere etwas auch so machen.

Die Frage von P.A.Trick war immerhin, wieso wird ein Filehandle benutzt und eine Datei angelegt, wenn sie per Definition (disable 1) nicht verwendet werden soll.

In allem Anderen hast Du sicher recht.
Gigabyte Brix, Arch Linux, CUL_MAX, TCM310, HM-Lan, LevelJET, VIERA, Fritz AHA, Fritz RC, FBDECT, NetIO, Alexa, Netatmo Presence

betateilchen

Zitat von: mimue am 07 September 2020, 06:53:54
Die Frage von P.A.Trick war immerhin, wieso wird ein Filehandle benutzt und eine Datei angelegt, wenn sie per Definition (disable 1) nicht verwendet werden soll.

Weil während des  FHEM Starts das Filehandle beim define des devices erzeugt wird und das Setzen des Attributes erst viel später erfolgt. Durch das Setzen des Attributes wird weder das Log-Device gelöscht noch irgendwas anderes physikalisches an diesem File geändert. Beim define des device wird erstmal davon ausgegangen, dass es auch benutzt werden soll.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

P.A.Trick

Cool nach 5 Jahren wird das Thema wieder aktuell. Ich hole mir mal Popcorn :-)
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn