FHEM Forum

FHEM => Sonstiges => Thema gestartet von: P.A.Trick am 11 Oktober 2015, 11:16:35

Titel: FHEM Filelog und das disable Attribut
Beitrag von: P.A.Trick am 11 Oktober 2015, 11:16:35
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?)
Titel: Antw:FHEM Filelog und das disable Attribut
Beitrag von: rudolfkoenig am 11 Oktober 2015, 11:18:38
Nicht das ich es wuesste.
Hast du dadurch ein konkretes Problem?
Titel: Antw:FHEM Filelog und das disable Attribut
Beitrag von: P.A.Trick am 11 Oktober 2015, 11:20:21
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!
Titel: Antw:FHEM Filelog und das disable Attribut
Beitrag von: mimue am 06 September 2020, 14:00:13
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 ;-) )
Titel: Antw:FHEM Filelog und das disable Attribut
Beitrag von: betateilchen am 06 September 2020, 19:28:41
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.
Titel: Antw:FHEM Filelog und das disable Attribut
Beitrag von: mimue am 07 September 2020, 06:53:54
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.
Titel: Antw:FHEM Filelog und das disable Attribut
Beitrag von: betateilchen am 07 September 2020, 08:52:10
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.
Titel: Antw:FHEM Filelog und das disable Attribut
Beitrag von: P.A.Trick am 08 September 2020, 20:25:21
Cool nach 5 Jahren wird das Thema wieder aktuell. Ich hole mir mal Popcorn :-)