Skip to content

3.1 MduiLogIOBroker

Uwe Uhula edited this page Mar 13, 2020 · 13 revisions

MduiLogIOBroker

Dieses Script dient der Visualisierung des ioBroker-Logs in der vis im Material Design CSS Style als table- bzw. list-Anzeige. Dazu wird ein onLog()-Handler instanziiert, welcher bis zu MAX_LOG_CACHE Log-Einträge zwischenspeichert und daraus dann alle BUILD_TABLE_TIMER Sekunden bis zu MAX_LOG_FOLDER Log-Ordner erzeugt. In jedem Log-Ordner befindet sich ein table- und list-HTML State, welcher direkt in der vis angezeigt werden kann (jeweils im basic-string (unescaped) Widget). Je Log-Ordner kann ein filter als string (Bsp:'error') oder als RegExp (Bsp:'/warn|error/') festgelegt werden, welcher beim Aufbau der table-/list-HTML States berücksichtigt wird. Weiterhin können über clearPressed die table-/list-States gelöscht werden, beim nächsten Build werden sie dann nur solche Log-Eintäge berücksichtigen, die später hinzu kamen.

Wichtig! Der Javascript-Adapter muss mindestens Version 4.3.0 haben, da onLog() erst ab dann verfügbar ist.

Datei-Download: https://github.com/Uhula/ioBroker-Material-Design-Style/tree/master/templates/MduiLogIOBroker

Installation

Einfach als serverseitiges Script installieren und starten-5 Sek warten-stoppen-starten. Beim 1.Start werden die notwendigen States unter STATE_PATH = '0_userdata.0.mdui.logIOBroker.' erzeugt. Erst beim 2.Start instanziiert das Script die Event-Handler und läuft dann.

Konfiguration

Optional im constructor die const anpassen, wie z.B. die IGNORE_LIST Optional Anpassung der tmpTable und tmpList. Bei Anpassung der tmpTable und tmpList auch ohne MD CSS Style nutzbar.

Dokumentation

Beispiel vis-view beschrieben in:

States

Unter dem STATE_PATH werden die folgenden States erzeugt:

  • version : Script-Version, wird verwendet um Script-Updates zu erkennen
  • logCache : Cache der Log-Einträge als JSON
  • logCount : Anzahl der Log-Einträge in logCache
  • updatePressed : auf true setzen, wenn ein table/list update außerhalb des Intervals erfolgen soll

Weiterhin werden MAX_LOG_FOLDER Unterordner im STATE_PATH erzeugt (N=0-9):

  • LogN.table : enthält die table-HTML für ein basic-string (unescaped) Widget
  • LogN.list : enthält die list-HTML für ein basic-string (unescaped) Widget
  • LogN.count : Anzahl der Log-Zeilen
  • LogN.filter : Filter, der auch die logCache angewendet wurde im .table/.list zu erzeugen (siehe Filter)
  • LogN.lastUpdate : Timestamp des letzten Updates
  • LogN.lastClear : Timestamp des letzten manuellen "clearPressed", d.h. anschließend werden nur noch neuere Einträge aus der logCache berücksichtigt
  • LogN.clearPressed: auf true setzen, um die .table/.list zu löschen

Filter

In den filter-States können sowohl strings (Bsp:'error') als auch RegExp-Strings (Bsp:'/warn|error/') hinterlegt werden. RegExp-Strings werden an den einschließenden '/' erkannt. Über den ':' kann der Anfang eines Feldes mit in den Filter einbezogen werden. Beispiele: 'error' (string) zeigt alle Zeilen an, in denen 'error' in irgendeinem Feld vorkommt ':error:' (string) zeigt alle Zeilen an, welche den Typ 'error' besitzen (dito für: error, warn, info, silly, debug) '/error|warn/' (RegExp) zeigt alle Zeilen an, in denen 'error' oder 'warn' in irgendeinem Feld vorkommen '/:error:|:warn:/' (RegExp) zeigt alle Zeilen an, welche dem Typ 'error' oder 'warn' entsprechen 'tr-064' (string) zeigt alle Zeilen an, in denen 'tr-064' in irgendeinem Feld vorkommt ':tr-064' (string) zeigt alle Zeilen an, in welchen ein Feld mit 'tr-064' beginnt, z.B. als Adapterfilter

Lizenz

(c) 2020 by UH, MIT License, no warranty, use on your own risc

Clone this wiki locally