Eigenes Logfile einrichten

  • Hallo.

    In 3.x habe ich in der "Foos.php" (die als Einstieg zuerst durchlaufen wurde) unter admin und site mit "JLog::addLogger" einen Logfile eingerichtet.

    "Firstlady" hat auch sehr schön beschrieben, wie das ab 3.7 gemacht wird ( Anleitung).

    Nun versuche ich mich mit Joomla 4 - aber da gibt es - zumindest in meinen Beispielen - keine "Foos.php" unter admin bzw. site.

    Wo und ggf. wie kann ich nun den Logger einrichten?

  • TE schreibt halt

    Nun versuche ich mich mit Joomla 4 - aber da gibt es - zumindest in meinen Beispielen - keine "Foos.php" unter admin bzw. site.

    Wenn man sie unter J!3 selber anlegen muss, muss er das wohl unter J!4 auch? Obwohl ich immer noch nicht verstehe wo denn überhaupt anlegen "unter admin bzw. site.". Ich tät so was halt in eine Erweiterung rein, wenn ich es brauche. Irgendwo eine Foo.php tut doch nix von alleine?


    Oder redet TE über das Ausgabe-File Foo.php mit den Log-Einträgen? Das wird ja doch erst angelegt, wenns was zu loggen gibt.


    Blicks aber auch dann nicht anhand der Beschreibung ;)

  • Also "Foos" steht für meinen Komponentenname com_foos.


    In 3.x hatte ich in der besagten "stammbaum.php" folgende Logger eingerichtet:

    Danach konnte ich in allen Programmteilen einen Log absetzen:

    Code
    if (JDEBUG)
    {
       JLog::add('site/stammbaum.php: execute()', JLog::DEBUG, 'com_stammbaum.site');
    }

    So, nun gibt es aber nach meinen Erkenntnissen unter admin bzw. site keine "stammbaum.php" mehr in 4.x

    Ich hoffe ich habe mich nun verständlicher ausgedrückt - sorry.

  • So, nun gibt es aber nach meinen Erkenntnissen unter admin bzw. site keine "stammbaum.php" mehr in 4.x

    Das ist jetzt nur so hingefaselt von mir. Nach meiner Denke ist das Pendant für diese Datei die com_foo/src/Controller/DisplayController.php (wenn ich in Joomla-Core-Komponenten schaue).

    Und ich (Betonung auf "ich") würde es zuerst in der public function __construct probieren. Erst mal am Anfang der Methode, jedenfalls vor dem parent::_construct.

  • Das Foto ist die Struktur meiner Komponente in J3.x und soll zeigen wo die "Firlefanz.php" (bei mir stammbaum.php) steht - nämlich unter "admin" und unter "site).

    So nun bin ich einen kleinen Schritt weiter:

    man kann offensichtlich in jeder (php-)Datei mit

    Code
    use Joomla\CMS\Log\Log;

    und

    irgendwo

    Code
     Log::add('site/src/View/Tour/HtmlView.php: display($tpl)', Log::DEBUG);

    einen Log-Eintrag erstellen.

    In meinem Fall ist er im Log-Verzeichnis unter "everything.php" gelandet:

    2021-12-11T17:52:09+00:00 DEBUG 2001:16b8:a4d8:ec00:d131:f13a:f548:4e1a - site/src/View/Tour/HtmlView.php: display($tpl)

    2021-12-11T17:53:35+00:00 DEBUG 2001:16b8:a4d8:ec00:d131:f13a:f548:4e1a - site/src/View/Tour/HtmlView.php: display($tpl)

    2021-12-11T17:53:42+00:00 DEBUG 2001:16b8:a4d8:ec00:d131:f13a:f548:4e1a - site/src/View/Tour/HtmlView.php: display($tpl)


    Was mir jetzt noch fehlt: wie kann ich die Ausgabe in eine category stecken und wie kann ich den Namen der Log-Datei angeben?

    Huch. Alle Klarheiten beseitig?

    Grüße Dietmar

  • Vielleicht bin ich mit meinem Anliegen hier in der falschen Rubrik.

    Vielleicht kann mich die Moderatorin Christiane in die Rubrik "Entwicklung->Komponente" schieben.

    Sonst muss ich das Thema schließen und dort neu anlegen.

    Wäre schön, wenn's auch mit verschieben ginge.

    Danke

    Dietmar

  • Sonst muss ich das Thema schließen und dort neu anlegen.

    Hier liest sowieso jeder alles ;)


    In Post #7 habe ich ja schon gemutmaßt, in welcher Datei die Initialisierung des Loggers hineingehören könnte, weil du ja schreibst, in deiner Joomla-3-Variante hättest du das im Hauot-Controller, der früh durchlaufen wird.


    Initialisieren muss man den eigenen Logger nur 1x. Er sollte dann an späteren Stellen des Joomla-Ablaufs, auch komponenten-fremden nutzbar sein.


    Da ist dann dein Fund aus #11 schon richtig, dass diese Dateien dann mit deinen Zeilen loggen können.


    Was ich nicht verstehe, wegen "eigenem Namen" des Logfiles. Das hat firstlady ja in ihrem Tutorial drinnen (wie man den Logger mit eigenem Filenamen initialisiert).


    Und das Initialisieren hast du bei dir auch drinnen?

    Und das funktioniert unter Joomla 4 bei dir nicht?


    firstlady hat ja schon gesagt, dass sie sich irgendwann mal damit beschäftigen wird, ob es das noch tut. Mehr kann man nicht erwarten.