[gelöst] Debug Daten in DBlog

Begonnen von Borkk, 23 September 2021, 09:42:48

Vorheriges Thema - Nächstes Thema

Borkk

Hallo Zusammen,

ich habe vor ein paar Monaten mein FHEM komplett auf Docker und in dem Zusammenhang auch auf DBlog und ConfigDB umgestellt. Läuft alles super und man kann mit z.B. Grafana sehr schöne Graphen bauen.

Nun aber zu meinem Problem. Ich nutze ASC (AutoShutterControl) zur Rollostueuerung. In dem Modul gibt es einen "Debug-Mode" der ein sehr umfangreiches Logging erzeugt. Im "Filelog" konnte man die Einträge dann einfach sehen. In der Datenbank sehe ich die Einträge jedoch nicht, weder in "Current" noch in "history". DbLogInclude=.* gesetzt ist um ASC Device gesetzt und es laufen auch "normale" loggings in die DB.

Wo landen die Debug Einträge nun? Muss ich parallel noch ein Filelog laufen lassen oder kann ich diese Einträge auch irgendwie in die DB laufen lassen?
Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

ch.eick

Zitat von: Borkk am 23 September 2021, 09:42:48
Hallo Zusammen,

ich habe vor ein paar Monaten mein FHEM komplett auf Docker und in dem Zusammenhang auch auf DBlog und ConfigDB umgestellt. Läuft alles super und man kann mit z.B. Grafana sehr schöne Graphen bauen.

Nun aber zu meinem Problem. Ich nutze ASC (AutoShutterControl) zur Rollostueuerung. In dem Modul gibt es einen "Debug-Mode" der ein sehr umfangreiches Logging erzeugt. Im "Filelog" konnte man die Einträge dann einfach sehen. In der Datenbank sehe ich die Einträge jedoch nicht, weder in "Current" noch in "history". DbLogInclude=.* gesetzt ist um ASC Device gesetzt und es laufen auch "normale" loggings in die DB.

Wo landen die Debug Einträge nun? Muss ich parallel noch ein Filelog laufen lassen oder kann ich diese Einträge auch irgendwie in die DB laufen lassen?
Bei mir finde ich die im fhem Log. Wenn dort zuviel erscheint kannst Du natürlich mit UNIX Mitteln auch filtern.


tail -n 500 -f ./log/fhem-2021-09-23.log


VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Borkk

Zitat von: ch.eick am 23 September 2021, 09:58:55
Bei mir finde ich die im fhem Log. Wenn dort zuviel erscheint kannst Du natürlich mit UNIX Mitteln auch filtern.


tail -n 500 -f ./log/fhem-2021-09-23.log


VG
   Christian

Danke Christian, aber genau dafür dachte ich habe ich DBLog angelegt. Damit eben keine Log Datei auf die SD geschrieben wird... (ok, mittlerweile ist es eine SSD)   
Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

rudolfkoenig

DbLog (und FileLog) speichert "nur" die FHEM-Events.
Die Logmeldungen (Debugging, etc) werden immer in eine Datei geschrieben.
Ueber eine existierende Schnittstelle koennte DbLog diese Daten zusaetzlich auch in die DB schreiben.
Eine (womoeglich unpassende) Alternative ist Log2Syslog.

Borkk

Zitat von: rudolfkoenig am 23 September 2021, 10:36:29
DbLog (und FileLog) speichert "nur" die FHEM-Events.
Die Logmeldungen (Debugging, etc) werden immer in eine Datei geschrieben.
Ueber eine existierende Schnittstelle koennte DbLog diese Daten zusaetzlich auch in die DB schreiben.
Eine (womoeglich unpassende) Alternative ist Log2Syslog.

Danke für die Antwort. Ich habe aber noch eine Verständnisfrage, was "FHEM-Events" sind bzw. welche Event eben keine sind.

In meiner DB landen alle Reading-Events der Module bei denen ich über das Attr "DbLogInclude" entsprechend konfiguriert habe. Das ist soweit klar und funktioniert einwandfrei.

In der Datei fhem-xxx.log landen im Grunde nur noch Fehlermeldungen einzelner Module bzw. manuell aktivierte Debugdaten (wie z.B. bei ASC). Das sind dann vermutlich die "FHEM_Events"

Wie liese sich diese Ausgabe ebenfalls via DBLog in die DB schrieben ? Und würde das überhaupt Sinn machen. Vermutlich nicht, man will ja u.U. auch eine Fehlermeldung sehen wenn die DB Verbindung gestört sein sollte.

Hab ich das in etwa richtig verstanden?

Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

rudolfkoenig

Vereinfacht: Events sind Nachrichten von externen Geraeten, die Logmeldungen sind Fehlermeldungen oder Debug-Ausgaben der Module.
Die Bezeichnung FileLog/DbLog ist etwas irrefuehrend, weil beide Module die Events persistieren.

ZitatWie liese sich diese Ausgabe ebenfalls via DBLog in die DB schrieben ?
Dafuer muss das DbLog Modul erweitert werden, die Schnittstelle in fhem.pl ist vorhanden.

ZitatUnd würde das überhaupt Sinn machen. Vermutlich nicht, man will ja u.U. auch eine Fehlermeldung sehen wenn die DB Verbindung gestört sein sollte.
Ueber das "fuer" und "wider" kann man lange diskutieren.
Wenn man fuer eine Weiterverarbeitung dieser Daten aus der DB bessere Tools hat, wieso nicht.
Die Dateiausgabe bleibt weiterhin erhalten, sie ist nur indirekt (per /dev/null als Output) abschaltbar.

Borkk

Vielen Dank für die Erklärung. Ich nutze jetzt erst mal das klassische FHEM Log über FileLog um die Debug´s von ASC lesen zu können. Parallel habe ich mir aber auch mal einen SysLog Server als Docker Container gestartet und schau mir das "Log2Syslog" Modul mal an.   
Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...