Hallo,
ich nutze relativ häufig die Log Funktion im Perl Modus bei DOIFs.
Folgende Fragen hätte ich dazu:
- was bedeutet die Zahl 1 bei {Log(1, "Hello")} ?
- Können auch andere Zahlen verwendet werden?
- gibt es einen Zusammenhang zwischen dem verbose Level und der Log Funktion?
Danke schon mal für die Antworten
Hi,
einfacher Test in der FHEM Kommandozeile zur Erklärung:
{Log(1, "Hello eins");;Log(2, "Hello zwei");;Log(3, "Hello drei");;Log(4, "Hello vier");;Log(5, "Hello fünf");;return AttrVal('global','verbose','error')}
Danach schaust Du ins Log wie und bis wohin geloggt wurde.
Gruß Otto
Hallo Otto,
vielen Dank für die schnelle Antwort.
Die Kommandozeile, ....., ja, die nutze ich viel zu wenig.
Hab es ausprobiert, und jetzt ist es mir klar. Den Befehl für die Kommandozeile noch um 0 erweitert, und den verbose Level des global Devices auf 2 gesetzt.
Das Kommando
{Log(0, "Hello null");;Log(1, "Hello eins");;Log(2, "Hello zwei");;Log(3, "Hello drei");;Log(4, "Hello vier");;Log(5, "Hello fünf");;return AttrVal('global','verbose','error')}
ergibt dann im FHEM Log file folgende Ausgabe:
2023.03.03 09:57:33 0: Hello null
2023.03.03 09:57:33 1: Hello eins
2023.03.03 09:57:33 2: Hello zwei
So wie es aussieht bezieht sich die Zahl nur auf den verbose Level des global Devices. Wenn man innerhalb eines anderen Devices einen höheren Loglevel, z.B. 5, hat, dann erfolgt bei Log(5, "[DOIF_Test] Hello fünf") kein Eintrag ins Logfile.
Gruß, und schönen Tach noch
Schaust Du hier https://wiki.fhem.de/wiki/DevelopmentModuleAPI#Logging
Die Funktion die Du für ein Device suchst ? heisst Log3 () ;)