[gelöst] DbLog für eigene Trace-Ausgaben nutzen

Begonnen von diwoma, 30 Oktober 2020, 18:20:47

Vorheriges Thema - Nächstes Thema

diwoma

Hi Wissende,

ich verwende Logging über DbLog auf eine Maria-DB.
Jetzt würde ich gerne eigene Trace/Info Ausgaben aus meinen Code-Schnipsel in der 99_utils ausgeben (sozusagen aus dem Perl-Code).
Damit komme ich aber nicht zurecht (Einbinden DBLog-Modul und Aufruf der Addlog-Funktion)

Also habe ich auf die FHEM-Methode zurückgegriffen und ein Dummy-Device namens TRACE erstellt.

Und ich hoffte mit dem Aufruf
set DBLogging addLog TRACE:irgendwas <mein text>
den Trace einzutragen.

Getestet in der Device DbLogging.

Im Prinzip funktioniert das auch aber:
<mein text> darf keine Leerzeichen enthalten, hilft auch nicht wenn er mit '' umschlossen wird.

Kann man den Text irgendwie als String mit Leerzeichen übergeben?
Oder muß ich jedes Leerzeichen selbst escapen?
Oder mache ich da sowieso einen groben Fehler?

Am liebsten wäre es mir, wenn ich das direkt in Perl aufrufen könnte, aber wie muß der Aufruf dann aussehen?

--- diwoma
Lg. Wolfgang
-------------------
Graz, Österreich

DS_Starter

Hallo Wolfgang,

wenn du DbLog im asynchronen Modus betreibst, kannst du es dir sehr einfach machen:


set <name> addCacheLine YYYY-MM-DD HH:MM:SS|<device>|<type>|<event>|<reading>|<value>|[<unit>]


In einem Programm würdest du benutzen:


fhem ("set <name> addCacheLine YYYY-MM-DD HH:MM:SS|<device>|<type>|<event>|<reading>|<value>|[<unit>]")


Da kannst du reinschreiben was du möchtest, z.B.:


fhem ("set <name> addCacheLine 2020-10-30 19:30:30|TRACE|TRACE|Own|Test1|Das ist ein Testtrace|");


Wenn du mit Events arbeiten willst gibt es z.B. das trigger-Kommando. -> https://fhem.de/commandref_DE.html#trigger
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

diwoma

Danke DS_Starter,

So habe ich es nun eingebaut und es funktioniert.

-- diwoma
Lg. Wolfgang
-------------------
Graz, Österreich