Logging (mehr als erwartet) seit dem 15.8

Begonnen von Mattias, 17 August 2013, 09:16:32

Vorheriges Thema - Nächstes Thema

Mattias

Ich hab folgende Einstellungen in meiner Config:

fhem.cfg:
attr global verbose 3

define cul CUL /dev/ttyACM0@115200 3231
attr cul loglevel 4

define WEB FHEMWEB 8083 global
attr WEB loglevel 5

define FileLog_FHEM FileLog /var/media/ftp/uStor03/fhem/fhem-%Y-%m.log fakelog
attr FileLog_FHEM room Logfiles


In der Vergangenheit war das ausreichend um keine Logmessages von FHEMWEB zu bekommen. Das ist relativ wichtig für mich, weil der Platz für Logfiles bei mir endlich ist, das System (Fritzbox) lange laufen muss, ohne dass die Logfiles abgeräumt werden müssen. Ausserdem wird die Fritzbox selber signifikant langsamer bei häufigen USB-Zugriffen.

Aktuell finde ich seit einigen Tagen (mindestens seit dem 15.8) folgende Einträge in meinem fhem.log

2013.08.17 08:44:17 4: HTTP FHEMWEB:192.168.1.x:2796 GET /fhem?room=Arbeitszimmer
2013.08.17 08:44:18 4: /fhem?room=Arbeitszimmer / RL:12994 / text/html; charset=UTF-8 /  /
2013.08.17 08:44:18 4: HTTP FHEMWEB:192.168.1.x:2796 GET /fhem/SVG_showLog?dev=weblink_fenster.arbeitszimmer.ost&logdev=FileLog_fenster.arbeitszimmer.ost&gplotfile=fht80tf&logfile=CURRENT&pos=
2013.08.17 08:44:19 5: plotcommand: get FileLog_fenster.arbeitszimmer.ost CURRENT INT 2013-08-17_00:00:00 2013-08-18_00:00:01 4:Window:0:$fld[3]=~"Open"?1:0
2013.08.17 08:44:19 4: /fhem/SVG_showLog?dev=weblink_fenster.arbeitszimmer.ost&logdev=FileLog_fenster.arbeitszimmer.ost&gplotfile=fht80tf&logfile=CURRENT&pos= / RL:9200 / image/svg+xml /  /
2013.08.17 08:46:09 4: Closing connection FHEMWEB:192.168.1.x:2796


Ich entsinne mich, hier irgendwo (svn log?) etwas davon gelesen zu haben, das GetLogLevel deprecated sei. Möglicherweise besteht da ein Zusammenhang?

Oder handelt es sich gar nicht um einen Fehler und ich muss für jedes FileLog (und womöglich weitere Objekte) den LogLevel setzen bzw erhöhen um zum bisherigen Zustand zurück zu kehren?
Mattias

rudolfkoenig

Die neue Implementierung fuer loglevel hat (leider?) die alte Logik umgedreht, allerdings ist die neue Logik sowohl flexibler, als auch insgesamt logischer.

D.h.: wenn man Ausgaben mit bestimmten Level (in deinem Beispiel als 4,5 zu sehen) nicht sehen will, dann muss loglevel kleiner sein, als diese Werte, analog zu den globalen verbose. Je kleiner loglevel ist, desto weniger Log.

Mattias

Ja, ich hatte auch so den Eindruck, das Log3 "falsch" herum abfragt.

Woher weiss ich denn, welche Teile von FHEM nun mit umgekehrtem Loglevel arbeiten und welche nach dem alten Modell? (Ist ja nicht so, dass plötzlich alles voll mit Log-Ausgaben wäre. Scheinbar betrifft das im Moment erstmal (nur?) FHEMWEB. Wann kommen denn die anderen FHEM-Bestandteile an die Reihe?

Ich denke, es wäre aus prinzipiellen Überlegungen wünschenswert, den Umstellungszeitraum von alter nach neuer Logik möglichst überschaubar zu halten, da sicher niemand nach jedem Update die Konfiguration anpassen möchte, weil ansonsten mehr (oder weniger) geloggt wird.

Die Alternative - aus Anwendersicht mMn eleganter - wäre die Einführung eines separaten Attributs für die neue, umgekehrte Log3-Logik - "verbose" würde sich hierfür ja eigentlich anbieten. Als Anwender hätte ich so die Möglichkeit, _jetzt_ beide Attribute zu setzen (loglevel wie gehabt und dokumentiert und verbose auf 6-loglevel). Wenn ein Modul dann von loglevel auf verbose umgestellt wird, muss ich nichts zu tun und wichtiger, das Logging ändert sich nicht.
Am Ende wird die Unterstützung für loglevel entfernt, die Dokumentation angepasst, womöäglich die Benutzerkonfiguration automatisch angepasst für die Module/Devices, für die Loglevel, aber kein verbose definiert wurde und gut ist's.

rudolfkoenig

Interessante Alternative, ich denke drueber nach.

Das wuerde bedeuten:
- verbose wird fuer alle Module automatisch angeboten
- Alle Module die jetzt loglevel anbieten werden auf Log3 umgestellt, damit wird loglevel nach und nach durch verbose ersetzt, und das loglevel Attribut kann im Modul entfernt werden.
- Eigentlich sollte Log in Modulen gar nicht mehr verwendet werden.

Gegenargumente?

Mattias

Zitat von: Mattias schrieb am Sa, 17 August 2013 14:17Scheinbar betrifft das im Moment erstmal (nur?) FHEMWEB.
Auch YAMAHA_AVR und PRESENCE verwenden Log3. Auch für diese Module muss ein ggf. konfigurierter loglevel also umgesetzt werden, da sich, wie Rudi oben beschrieben hat, die Logik umgedreht hat. In meinem Fall muss der Loglevel von 5 auf 0 oder 1 umgesetzt werden, um zum alten Zustand zurück zu kehren. Gerade im Fall von PRESENCE wird andernfalls das Logfile sonst schnell sehr groß!

Ich fände es besser, nicht loglevel mal so und mal so setzen zu müssen, je nachdem ob ein Modul intern nun Log3 oder GetLogLevel/Log verwendet. Allerwenigstens, wenn ich das mal so ausdrücken darf, sollte die Dokumentation von loglevel um einen (zeitweiligen) Hinweis auf den aktuellen "Mischbetrieb" ergänzt werden.

Der Ist-Zustand ist für Joe Anwender, der nicht in die Sourcen schauen will (oder sie nicht versteht), aktuell nicht nachvollziehbar. Vielleicht wäre es doch sinnvoller nicht an zu vielen Baustellen gleichzeitig zu arbeiten oder etwas strukturierter vorzugehen (Minimum: Änderungen besser dokumentieren). Klappt ja bei FHEM in anderen Fällen auch ganz gut.

Last, but not least würde ich mir wünschen, dass auch TcpServerUtils angepasst wird. FHEMWEB verwendet einerseits selber log3, also niedriger loglevel gleich wenig Output. Andererseits wird aber auf das nicht umgestellte TcpServerUtils zurückgegriffen, in dem niedriger Loglevel (von FHEMWEB) als detailliertes Logging verstanden wird. Da helfen leider alle Konfigurationsänderungen nichts, denn entweder schreibt mir FHEMWEB das Logfile voll, oder TcpServerUtils macht's.


rudolfkoenig

Ich habe alle von mir betreuten Module umgestellt auf Log3, und diesen wiederum umgestellt auf verbose.
Ich erstelle noch einen Eintrag in Developer und Ankuendigungen dazu.

Mattias

Vielen Dank für die schnellen Änderungen!