FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: der-sigi am 06 Dezember 2017, 09:19:07

Titel: [gelöst] In ein bestimmtes FileLog irgendwas loggen
Beitrag von: der-sigi am 06 Dezember 2017, 09:19:07
Hallo

ich habe mal wieder eine Frage an der ich schon eine ganze Weile knabbere aber nicht zu einem Ergebnis komme:

Ich nutze FileLog für meine Log Ausgaben. Da habe ich einige verschiedene für verschiedene Aufgaben angelegt. Das funktioniert soweit wunderbar, wenn das an irgendwelche Devices und Events hängt. Jetzt möchte ich aber an und ab durch eine selbstgeschriebene Funktion irgendwas loggen und zwar in eine ganz bestimmte Log Datei. Und das bekomme ich nicht hin. Bei allen Möglichkeiten gibt es keine Möglichkeit das Ziel FileLog anzugeben, ausser ich habe was übersehen.

Anhand von dem netten Artikel https://wiki.fhem.de/wiki/Plot-Abriss_vermeiden (https://wiki.fhem.de/wiki/Plot-Abriss_vermeiden) habe ich mal folgendes probiert:

define GlobalLog FileLog ./log/%Y/%m/%d/GLOBAL nothing
attr GlobalLog logtype text
attr GlobalLog room FileLog


Und folgendes als Auslöser:

trigger GlobalLog REREADCFGJOB|$today|$hms

Aber das erscheint nie in dem entsprechenden FileLog.

Kann mir da jemand weiterhelfen?

Viele Grüße - Sigi
Titel: Antw:In ein bestimmtes FileLog irgendwas loggen
Beitrag von: Otto123 am 06 Dezember 2017, 09:30:19
Moin Sigi,

gemäß der Doku  (https://fhem.de/commandref_DE.html#FileLog)würde Dein FileLog auf das regEx nothing anspringen und diesen Event loggen.
Du bräuchtest also noch ein Gerät mit dem Namen nothing
define nothing dummy
und kannst dann mit trigger nothing Willi einen Log Eintrag erzeugen.

Ich hoffe Du hast das Beispiel verstanden  ;D

Ob das Deine ursprüngliche Aufgabe löst weiß ich nicht. Ich habe mich darauf konzentriert Deinen Lösungsansatz funktional zu machen.  8)

Gruß Otto
Titel: Antw:In ein bestimmtes FileLog irgendwas loggen
Beitrag von: der-sigi am 06 Dezember 2017, 13:09:49
Super. Dankeschön Otto. Klappt.
Titel: Antw:[gelöst] In ein bestimmtes FileLog irgendwas loggen
Beitrag von: der-sigi am 06 Dezember 2017, 13:38:34
Für diejenigen die das nachbauen möchten, alles im Zusammenhang:
Zuerst die Grundeinheit:

define GlobalLogJob dummy
attr GlobalLogJob room FileLog
define GlobalLog FileLog ./log/%Y/%m/%d/GLOBAL GlobalLogJob
attr GlobalLog logtype text
attr GlobalLog room FileLog


dann der Aufruf bzw. das Loggen:

trigger GlobalLogJob REREADCFGJOB|$today|$hms

oder:

trigger GlobalLogJob das-was-im-log-stehen-soll
Titel: Antw:[gelöst] In ein bestimmtes FileLog irgendwas loggen
Beitrag von: der-sigi am 06 Dezember 2017, 13:46:47
Ähm, wenn das jemand direkt so übernimmt: Ich logge in spezielle Log-Verzeichnisse:

/opt/fhem/log/JAHR/MONAT/TAG/DATEINAME

Die Unterverzeichnisse legt FHEM nicht selber an, die muss man mit einem Job um Mitternacht selber anlegen. FHEM merkt auch nicht, dass sich die Verzeichnisse geändert haben, daher muss man alle FileLogs manuell bzw. in dem Mitternacht Job, wie folgt auf den neuesten Stand bringen.

set GlobalLog reopen

FHEM merkt sowas (leider) nur, wenn die Variablen im Dateinamen stehen.