FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: diwoma am 30 Oktober 2020, 18:20:47

Titel: [gelöst] DbLog für eigene Trace-Ausgaben nutzen
Beitrag von: diwoma am 30 Oktober 2020, 18:20:47
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
Titel: Antw:DbLog für eigene Trace-Ausgaben nutzen
Beitrag von: DS_Starter am 30 Oktober 2020, 19:30:06
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
Titel: Antw:DbLog für eigene Trace-Ausgaben nutzen
Beitrag von: diwoma am 31 Oktober 2020, 16:56:44
Danke DS_Starter,

So habe ich es nun eingebaut und es funktioniert.

-- diwoma