FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: Rainerlan_2 am 13 Januar 2022, 23:22:39

Titel: python script zum filtern von logfiles
Beitrag von: Rainerlan_2 am 13 Januar 2022, 23:22:39
Vielleicht hatte schon jemand das Problem - und vlt. gibt es auch schon irgendwo ein Skript dazu (ich habe es dann aber nicht gefunden):
Es existieren große logfiles und nun möchte man diese auf wenige Readings maximal zusammenschrumpfen.
Das war bei mir der Fall, da ich noch von der Zeit bevor ich in mySQL geloggt habe, parallel filelog-devices definiert hatte.
Jetzt wollte ich die alten, großen logs aber nicht einfach löschen, sondern ausgewählte Events ins DbLog übernehmen mittels
set filelogconv import2DbLog

Daher habe ich ein kleines Python-skript geschrieben, mit folgenden Filterfunktionen:

Um nur den Status des devices zu behalten, muss man mit einem Schlüsselwort arbeiten:
keepReadingsList = ['__status__']

Das Skript unterstützt aktuell 1 Device pro logfile - wäre aber recht einfach zu erweitern. Nur habe ich die Anforderung selbst nicht an das Skript.

Aufruf:
fhemLogFilter_v1_0.py [-keep] -i <inputfile> -o <outputfile>

Vielleicht kanns jemand brauchen.
Bei den von mir getesteten Logs hats funktioniert...Aber keine Garantie dass das bei allen so ist;)