Log3 und Datenübergabe an $logInform{$li}

Begonnen von Byte09, 12 Dezember 2018, 09:15:42

Vorheriges Thema - Nächstes Thema

Byte09

guten morgen ,

nur mal eine vorsichtige Anfrage:

kan sein , dasss ich falsch liege , ich gehe aber davon aus, dass der gesamte codeteil in der fhem.pl - sub Log3 :  no strict "refs";
  foreach my $li (keys %logInform) {
    if($defs{$li}) {
      &{$logInform{$li}}($li, "$tim $loglevel : $text");
    } else {
      delete $logInform{$li};
    }
  }
  use strict "refs";

derzeit nur von notify genutzt/benötigt wird ?.

sollte das so sein , wäre es dann ggf. möglich , hier den Namen des Log3-aufrufenden Devices mit zu übergeben  - z.b.:&{$logInform{$li}}($li, "$dev $tim $loglevel : $text");
das würde eine darauf aufbauende Auswertung des übergebenen Strings in meinen Augen vereinfachen (zumindest für mein Modul) .

dürfte dann doch für vorhandene Konfigurationen keinen Unterschied machen , da ( bei Nutzung ) wohl eh per Regex nach 'Treffern' gesucht werden muss - oder sehe ich das falsch ?

Gruss Byte09

rudolfkoenig

% grep -l logInform FHEM/*.pm
FHEM/01_FHEMWEB.pm
FHEM/91_notify.pm
FHEM/93_Log2Syslog.pm
FHEM/98_telnet.pm

Zitatwäre es dann ggf. möglich , hier den Namen des Log3-aufrufenden Devices mit zu übergeben  - z.b.
Ungern, da ich nicht ueberblicke, was das fuer Nebenwirkungen haette.
Abgesehen davon, dass bereits definierte Notifies evtl. nicht mehr funktionieren.
Fuer welchen Zweck willst du diese Daten auswerten?
Ich plane nicht logInform zu Event-Ersatz auszubauen.

Byte09

#2
danke für die schnelle antwort, auf diese idee % grep -l logInform FHEM/*.pm bin ich irgendwie nicht gekommen und soviel zu 'wird nur von notify verwendet'.

ein ausbau zum eventersatz soll es ja nicht sein  ( ist es ja im grunde schon / zumindest kann es von notify so genutzt werden )

diese Funktion möchte ich von notify ( für den bedarfsfall ) übernehmen , könnte anhand der Namesübergabe aber zu einem sehr frühen Zeitpunkt prüfen , ob diese Daten überhaupt relevant sind ( im Rahmen der Konfiguration ) und kann ansonsten den Aufruf sehr schnell beenden ( wenn ich den Namen an einer definierten position habe/bzw. ihn überhaupt habe.)

kann aber durchaus verstehen wenn du hier keine änderung vornehmen möchtest und überlege mir etwas anderes.

danke und gruss Byte09