FHEMWEB listet keine FileLog-Logfiles mit %L-Platzhalter

Begonnen von Mattias, 12 März 2013, 16:27:43

Vorheriges Thema - Nächstes Thema

Mattias

In der Doku zu FileLog steht "FHEM also replaces %L by the value of the global logdir attribute." zusammen mit einigen Beispielen. Bei meinen Versuchen, %L zur Vereinfachung meiner Konfiguration verwenden, bin ich auf ein Problem gestossen.

Auszug aus meiner fhem.cfg:
attr global logdir /var/media/ftp/uStor03/fhem
attr global logfile %L/fhem-%Y-%m.log

define FileLog_klima.arbeitszimmer FileLog %L/klima.arbeitszimmer-%Y-%m.log klima.arbeitszimmer

Alle Filelog-Objekte haben bei mir ein gemeinsames room-Attribut ("logfiles"). Bei FileLog-Objekten mit %L-Platzhalter fehlen in der logfiles-Übersicht die monatsweise angelegten Dateien (obwohl sie im Verzeichnis vorhanden sind). Seltsamerweise tritt das Problem nur in Zusammenhang mit FileLog auf. Die ebenfalls monatsweise geschriebenen Dateien des globalen Logfiles werden korrekt angezeigt.


(siehe Anhang / see attachement)


Wenn ich den %L-Platzhalter entferne, sehe ich die Logfiles der Vormonate wie erwartet wieder in der logfiles-Übersicht.
attr global logdir /var/media/ftp/uStor03/fhem
attr global logfile /var/media/ftp/uStor03/fhem/fhem-%Y-%m.log

define FileLog_klima.arbeitszimmer FileLog /var/media/ftp/uStor03/fhem/klima.arbeitszimmer-%Y-%m.log klima.arbeitszimmer


(siehe Anhang / see attachement)


Erwarten würde ich, dass sich das globale logfile und FileLog-Instanzen gleich verhalten und dass die vorhandenen Logfiles bei beiden Typen aufgelistet werden.

rudolfkoenig

Das Problem ist nicht das %L, sondern dass es vor dem / ist.

Das Finden aller passenden Dateien ist in FHEMWEB einfach gestrickt: in der Datei-Komponente wird %L (und alle anderen % Ausdruecke) durch .* ersetzt, und die Liste der Dateien aus dem (festen) Verzeichnis damit gefiltert.

Platzhalter in der Verzeichnis-Komponente ist etwas aufwendiger zu bauen, deswegen bleibt das Problem erstmal auch als solches bestehen.


Mattias

Schade, vor allem, da die %L-Ersetzung für das globale Logfile anscheinend korrekt funktioniert, der Code also prinzipiell schon vorhanden sein sollte.

Ärgerlich nur, dass ich mich selber mit Perl eher schwer tue, sonst könnte ich konkretere Vorschläge machen. Aber vielleicht wird das ja noch...

Update:
Ich bin der Meinung, dass sich das gewünschte Verhalten mit zwei zusätzlichen Zeilen in 01_FHEMWEB.pm erreichen lässt. Ich hänge die Änderungen mal als Patch hier an. Vielleicht lässt sich das ja so (oder ähnlich) übernehmen.