Ich habe mich in den letzten Tagen viel mit dem auslesen von Readings und dem speichern in Logfiles beschäftigt
In einem Fall lese ich in einem Device alle 15 Min Readings aus. Wenn ich nun diese Readings in ein Logfile schreibe wird auch alle 15 Min geloggt.
Ich habe bei der Definition des Logfile's kein Intervall definiert (falls möglich). Scheinbar löst das aktualisieren des Readings das loggen aus
In einem anderen Fall überwache ich ein Device mit dem Modul Hourcounter
Falls ich hier Readings logge wird jede Stunde geloggt
Frage 1: Kann ich die Häufigkeit des loggens mittels attr. bestimmen
Die vielen Logfiles welche FHEM automatisch erzeugt hat sind im Pfad opt/FHEM/log gespeichert
Die beiden Logfiles welche ich erstellt habe werden im Pfad opt/FHEM gespeichert
Frage 2: Wo wird das definiert? Ein attr. Path gibt es im LogFile nicht
Bitte nicht "Lesen" antworten. Ich habe gelesen
Zitat von: bajogger am 30 September 2022, 20:23:19
Bitte nicht "Lesen" antworten. Ich habe gelesen
Aber offenbar nicht an den richtigen Stellen.
In der commandref zu FileLog steht:
Zitat
Speichert Ereignisse in einer Log-Datei mit Namen <filename>. Das Log-Format ist
...
<filename> können %-wildcards der POSIX strftime-Funktion des darunterliegenden OS enthalten (siehe auch strftime Beschreibung). Allgemein gebräuchliche Wildcards sind:
%d Tag des Monats (01..31)
%m Monat (01..12)
%Y Jahr (1970...)
%w Wochentag (0..6); beginnend mit Sonntag (0)
%j Tag des Jahres (001..366)
%U Wochennummer des Jahres, wobei Wochenbeginn = Sonntag (00..53)
%W Wochennummer des Jahres, wobei Wochenbeginn = Montag (00..53)
FHEM ersetzt %L mit dem Wert des global logdir Attributes.
Aha, es gibt also Attribute im Device "global", die vielleicht weiterhelfen.
Schauen wir doch mal in der commandref unter "global" bei den Attributbeschreibungen nach...
Zitat
logdir
Falls gesetzt, wird %L in dem logfile Attribut (oder in der Dateinamen Spezifikation des FileLog Moduls) durch den Wert des Attributes ersetzt. Achtung: ändern des Wertes bewirkt nicht das Verschieben bereits erstellter Dateien, und kann zu diversen Problemen führen.
Und in der commandref zu autocreate (Du schreibst von "automatisch angelegten Logfiles", die von diesem Modul erzeugt werden) steht darüberhinaus
Zitat
attr autocreate filelog test2/log/%NAME-%Y.log
Und nun dazu:
Zitat
Die vielen Logfiles welche FHEM automatisch erzeugt hat sind im Pfad opt/FHEM/log gespeichert
Die beiden Logfiles welche ich erstellt habe werden im Pfad opt/FHEM gespeichert
Warum das so ist, solltest Du jetzt eigentlich beantworten können. Nochmal zusammengefasst:
- WO ein Logfile gespeichert wird, wird grundsätzlich in der Definition des FileLog devices festgelegt.
- WAS in ein Logfile geschrieben wird, wird ebenfalls in der Definition des FileLog festgelegt.
- WIE OFT in ein Logfile geschrieben wird, bestimmt das device, dessen Werte geloggt werden. Jeder von einem device erzeugte EVENT, der zu der regex im FileLog passt ("WAS wird geloogt"), löst einen Eintrag im Log aus.
Danke für deine Hilfe. Die 3 Zeilen welche du Zusammenfassung genannt hast haben vieles erklärt und sehr geholfen.
Generell stelle ich immer wieder fest das ihr Spezialisten euch nicht so recht in Anfänger hinein versetzen könnt
ZitatZitat
Speichert Ereignisse in einer Log-Datei mit Namen <filename>. Das Log-Format ist
...
<filename> können %-wildcards der POSIX strftime-Funktion des darunterliegenden OS enthalten (siehe auch strftime Beschreibung). Allgemein gebräuchliche Wildcards sind:
%d Tag des Monats (01..31)
%m Monat (01..12)
%Y Jahr (1970...)
%w Wochentag (0..6); beginnend mit Sonntag (0)
%j Tag des Jahres (001..366)
%U Wochennummer des Jahres, wobei Wochenbeginn = Sonntag (00..53)
%W Wochennummer des Jahres, wobei Wochenbeginn = Montag (00..53)
FHEM ersetzt %L mit dem Wert des global logdir Attributes.
Beim Lesen solcher Erklärungen sehe ich erstmal keinerlei Erklärung zum Speicherort. Das verwirrt mich mehr.
Jemand mit meinem Wissen tut sich schon schwer mit kleinen Abweichungen
Ich habe beim definieren den Speichort mit reingepackt
define Name filelog opt/fhem/userlog/logdatei.log Device:reading # funktionierte nicht
Der Slash vor opt fehlt, oder?
define Name filelog /opt/fhem/userlog/logdatei.log Device:reading # yes
Sorry sollte kein Gejammer werden. Danke