Logging Funtionen der IPSLibrary in einem Modul nutzen. Geht das?

Hallo,

ich bin begeisterter Nutzer der IPSLibrary. Insbesondere nutze ich gerne die Logging Möglichkeiten in meinen Skripten.

Nun suche ich eine Möglichkeit, auch von Modulen heraus auf die Logging Möglichkeiten (z.B. IPSLogger_Inf() etc.) zuzugreifen.

Meine Idee ist, zu testen, ob der IPSLogger instaliert ist um dann die Funktionen aufzurufen. Wenn nicht, dann halt IPS_LogMessage bzw. SendDebug nutzen.

Geht das irgendwie? Und wenn ja, wie binde ich es ein?

Meine bisherigen Versuche waren eher stümperhaft und nicht von Erfolg gekrönt:rolleyes:

Gruß

Burkhard

Ich beantworte die Frage mal selber :slight_smile:

Ja, es geht. Meine Lösung:

if (function_exists('IPSUtils_Include')){
    IPSUtils_Include('IPSLogger.inc.php', 'IPSLibrary::app::core::IPSLogger');
}

Dann kann man die Methoden zum Beispiel aufrufen mit:

    private function Logger_Inf(string $message): void
    {
        $this->SendDebug('LOG_INFO', $message, 0);
        if (function_exists('IPSLogger_Inf')){
            IPSLogger_Dbg(basename(__CLASS__ . '.' . IPS_GetObject($this->InstanceID)['ObjectName'], '.php'), $data);
        } else {
            $this->LogMessage($message, KL_MESSAGE);
        }
    }

Gruß

Burkhard