[gelöst] In ein bestimmtes FileLog irgendwas loggen

Begonnen von der-sigi, 06 Dezember 2017, 09:19:07

Vorheriges Thema - Nächstes Thema

der-sigi

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 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

Otto123

#1
Moin Sigi,

gemäß der Doku 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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

der-sigi


der-sigi

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

der-sigi

Ä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.