FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: bajogger am 30 September 2022, 20:23:19

Titel: Logfile, wie Häufigkeit und Speicherort bestimmen
Beitrag von: bajogger am 30 September 2022, 20:23:19
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
Titel: Antw:Logfile, wie Häufigkeit und Speicherort bestimmen
Beitrag von: betateilchen am 30 September 2022, 20:32:28
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:

Titel: Antw:Logfile, wie Häufigkeit und Speicherort bestimmen
Beitrag von: bajogger am 01 Oktober 2022, 00:09:24
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