Logfile, wie Häufigkeit und Speicherort bestimmen

Begonnen von bajogger, 30 September 2022, 20:23:19

Vorheriges Thema - Nächstes Thema

bajogger

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
FHEM auf Raspberry Pi, CUL 433 und CUL 866,
Diverse IT Empfänger für Rolladen und Licht, IPCam Instar 2905

betateilchen

#1
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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

bajogger

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







FHEM auf Raspberry Pi, CUL 433 und CUL 866,
Diverse IT Empfänger für Rolladen und Licht, IPCam Instar 2905