Hallo,
ich möchte mir gern, falls mein Logfile innerhalb einer bestimmten Zeit mehr als XY Zeilen dazu bekommt, eine Nachricht schicken lassen.
In meiner global Logfile Definition, wird dieses Reading allerdings nicht aktualisiert. Es bleibt immer auf 0. In allen anderen FileLog Definitionen funktioniert es.
list Logfile
Internals:
DEF ./log/fhem-%Y-%m-%d.log fakelog
NAME Logfile
NR 76
NTFY_ORDER 50-Logfile
REGEXP fakelog
STATE active
TYPE FileLog
currentlogfile ./log/fhem-2017-01-29.log
logfile ./log/fhem-%Y-%m-%d.log
Readings:
2017-01-29 00:00:01 linesInTheFile 0
Attributes:
nrarchive 20
room __LOG
verbose 3
obwohl reichlich Einträge vorhanden sind.
Gruß
Ingo
Der Logfile eintrag in der Menu ist ein "Fakelog": es nuetzt die Frontend-Funktionalitaet des FileLog Moduls, um Daten aus dem FHEM-Log (die mit ganz anderen Mitteln geschrieben werden) in FHEMWEB anzuzeigen. Diese Logfile genannte FileLog Instanz schreibt die Datei nicht, deswegen ist dieses Attribut auch wirkungslos.
Ein Workaround kenne ich nicht.
Ok, das leuchtet ein.
Hier mein Workaround:
defmod linesInTheFileDoif DOIF ([+00:20:05]) (setreading Logfile linesInTheFileOld [Logfile:linesInTheFile]) (setreading Logfile linesInTheFile {(split(' ',qx (wc -l [Logfile:¤tlogfile])))[0]})
attr linesInTheFileDoif do always
Damit schreibe ich alle 20 Minuten die aktuelle Zeilenanzahl in das Reading und die alte Zeilenanzahl als Vergleichswert in ein anderes Reading.
Ziel ist es mit zu bekommen, wenn bei FHEM was nicht rund läuft und massenweise Logeinträge erstellt werden. Die Readings werte ich mit einem weiteren DOIF aus.
Gruß
Ingo