FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: ringidigiding am 03 März 2023, 09:32:53

Titel: [Gelöst] Logeinträge mit Perl Log Funktion
Beitrag von: ringidigiding am 03 März 2023, 09:32:53
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
Titel: Antw:Logeinträge mit Perl Log Funktion
Beitrag von: Otto123 am 03 März 2023, 09:39:12
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
Titel: Antw:Logeinträge mit Perl Log Funktion
Beitrag von: ringidigiding am 03 März 2023, 10:05:27
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
Titel: Antw:[Gelöst] Logeinträge mit Perl Log Funktion
Beitrag von: Otto123 am 03 März 2023, 10:59:43
Schaust Du hier https://wiki.fhem.de/wiki/DevelopmentModuleAPI#Logging
Die Funktion die Du für ein Device suchst ? heisst Log3 () ;)