PHP-Logging aktivieren

  • Hallo,


    es fühlt sich blöd an, das zu fragen. Aber wie aktiviere ich in Joomla! Fehlerprotokollierung in der Art, wie das WordPress macht? Also es sollen alle PHP-Fehler und Warnungen in eine Datei geschrieben werden. Im Front-End soll nichts angezeigt werden. Folgende Einstellungen sind gesetzt, aber kein Log wird erstellt:


    System debuggen: Ja

    Fehler berichten: Maximum

    Protokoll-Verzeichnis: /html/joomla-2020/administrator/logs (Der Pfad ist korrekt)


    Im Web konnte ich überhaupt nichts dazu finden außer ein paar Hinweise, dass die Logs vom Hoster kommen würden. Ich habe dann nach Anleitung des Hosters (in diesem Fall Mittwald) Logging in den Einstellungen von PHP aktiviert. Allerdings wird nie ein Log-File erstellt. Mittwald antwortete darauf, dass diese Einstellung ja von Joomla! überschrieben werden kann. Ist das der Fall?


    Grüße,

    Simon

  • Nein, Joomla überschreibt nichts. Da die Logfiles außerhalb vom Root liegen, hat Joomla darauf keinen Zugriff.
    Die Aussage vom Hoster ist also nicht richtig.


    Joomla macht aber auch keine eigenen Logfiles. Debugging ist eine Ausgabe im FE oder BE im Bereich debug und keine entsprechenden Files.


    Evtl. kannst Du damit was anfangen:
    https://extensions.joomla.org/extension/errorlog/

    https://extensions.joomla.org/extension/loggie/

  • Hallo,


    ich denke der Support bezog sich da auf die Einstellungen in der php.ini. Und tatsächlich zeigt Joomla! auch folgendes bei den PHP-Infos an:

    error_log = no value

    log_errors = Off


    Er nimmt also nicht die Einstellungen von der php.ini oder er überschreibt sie. Abgesehen davon, dass er die normale php.ini lädt, steht dort auch noch:

    Loaded Configuration File = /etc/php-fpm/php.ini


    Könnte es damit zusammenhängen? Diese Datei kann ich nicht bearbeiten. Und danke für die Erweiterungen, die schaue ich mir später mal an.


    sflick: Warum machst du diese Einsstellungen? System debuggen macht man ja nur wenn man einen Fehler sucht, nicht? Wenn nichts gezeigt wird ist es ja ein gutes Zeichen.

    Ich wollte schauen, ob Joomla! wenigstens dann ein Logfile generiert. Im normalen Betrieb sind diese Einstellungen nicht aktiviert.

    Einmal editiert, zuletzt von Indigo66 () aus folgendem Grund: Ein Beitrag von sflick mit diesem Beitrag zusammengefügt.

  • Protokoll-Verzeichnis: /html/joomla-2020/administrator/logs

    Hat im Normalfall nicht unmittelbar mit PHP-Logs zu tun. In dem Ordner werden Dateien gesammelt, die Joomla selber loggt (unabhängig von PHP-Meldungen). Da ist dann vornehmlich das Debug-Plugin zuständig, was da protokolliert wird und sich dann im logs-Ordner befindet.


    Das "System debuggen" hat auch nicht direkt mit dem zu tun, was du haben willst. Joomla zeigt im Fehlerfall ggf. mehr an als PHP das machen würde, aber eben auch Dinge, die keine Fehler sind.


    Siehe z.B. Fehler finden durch detailliertere Fehlermeldung. Debug-Modus. Call stack.


    Die Antwort von Mittwald wundert mich jetzt. Joomla überschreibt das "error_reporting", also die "Schärfe", was bzw. wie tief PHP-Meldungen angezeigt/geloggt werden. Wenns bei dir auf Maximum steht, ist das halt alles protokollieren, was schief läuft.


    Wenn's interessiert: https://github.com/joomla/joom…des/framework.php#L55-L90


    Wenige Erweiterungen, zuinstalllierte, können das überschreiben. Wenn sie es gut machen, dann nur temporär.


    Weitere Einstellungen wie

    error_log: Pfad zur Error-Log-Datei. Ich kann die bei mir auch ins Joomla-Verzeichnis schreiben lassen. Geht aber auch nicht immer.

    ignore_repeated_errors: (nicht so wichtig im Moment)

    log_errors: Muss On sein

    display_errors:

    display_startup_errors


    sind nicht unmittelbar in Joomla einstellbar, sondern eben Server- bzw. PHP-Konfiguration. Je nach Hoster gibt es da Stellschrauben bis hin zu keinen. Ich kann das z.B. per htaccess konfigurieren, was aber eher selten geht. Bei anderen per php.ini. Bei anderen in der Oberfläche beim Hoster. Bei wieder anderen gar nicht.


    Und natürlich muss natürlich auch was passiert sein, was PHP zu loggen hat ;)

  • Okay, danke. Aber wie kann man jetzt erklären, dass Joomla! scheinbar die Einstellungen aus der php.ini nicht nimmt/sieht? Kann das am Hoster liegen?

  • Wie gesagt, überschreibt Joomla das error_reporting ggf. Alles andere ist Einstellungssache seitens Server/Hoster. Joomla ignoriert da nichts...

    Allerdings wird nie ein Log-File erstellt.

    Es wird in dem unter "error_log" eingestellten Pfad gespeichert, eine PHP-Einstellung, keine Joomla-Einstellung. Das ist nur in Ausnahmefällen im Joomla-Verzeichnis. Vielleicht darfst/kannst du den in die php.ini eintragen(?) Wenn er unter Joomla-Backend > Systeminformationen > PHP-Informationen nicht angezeigt wird, kann dir nur der Hoster sagen, wo es liegt.


    Und wie gesagt, wenn es nichts zu melden gibt, meldet PHP auch nichts und schreibt auch nichts in diese Datei und legt sie erst an, wenns was zu melden gibt. Musst also in deinem PHP-Code einen Fehler einbauen, um das zu testen.

  • Wie gesagt, überschreibt Joomla das error_reporting ggf. Alles andere ist Einstellungssache seitens Server/Hoster. Joomla ignoriert da nichts...

    Es wird in dem unter "error_log" eingestellten Pfad gespeichert, eine PHP-Einstellung, keine Joomla-Einstellung. Das ist nur in Ausnahmefällen im Joomla-Verzeichnis. Vielleicht darfst/kannst du den in die php.ini eintragen(?) Wenn er unter Joomla-Backend > Systeminformationen > PHP-Informationen nicht angezeigt wird, kann dir nur der Hoster sagen, wo es liegt.


    Und wie gesagt, wenn es nichts zu melden gibt, meldet PHP auch nichts und schreibt auch nichts in diese Datei und legt sie erst an, wenns was zu melden gibt. Musst also in deinem PHP-Code einen Fehler einbauen, um das zu testen.

    Super, danke für die Infos. Fehler hatte ich zum testen absichtlich eingebaut, aber es half alles nichts. Dann wende ich mich jetzt wieder an den Support.