FriendsOfREDAXO / minibar

Minibar: Kleine Leiste für REDAXO, die nützliche Funktionen fürs System und den jeweiligen Benutzerkontext anbietet
MIT License
30 stars 3 forks source link

Systemlog zeigt gelbe Fahne obwohl Log leer #53

Closed skerbis closed 4 years ago

skerbis commented 5 years ago
Bildschirmfoto 2019-07-03 um 10 57 58
issue-label-bot[bot] commented 5 years ago

Issue-Label Bot is automatically applying the label feature_request to this issue, with a confidence of 0.60. Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!

Links: app homepage, dashboard and code for this bot.

staabm commented 5 years ago

hier ist die logik beschrieben die diese farben ermittelt:

https://github.com/FriendsOfREDAXO/minibar/blob/78a6846cbbe65bd1a8070303966b395b1efbc739/lib/element/syslog.php#L17-L25

ich vermute in deinem fall hast du eine installation die neu ist und noch keine 24h existiert?

skerbis commented 5 years ago

Ah ok .. dann warte ich mal ab

staabm commented 5 years ago

hab ich richtig geraten und deine installion ist neu?

skerbis commented 5 years ago

ja die minibar ist frisch installiert.

staabm commented 5 years ago

nicht die minibar... die redaxo installation?

skerbis commented 5 years ago

ne, die REDAXO-Installation ist von 2017 und immer wieder aktualisiert

staabm commented 5 years ago

hm ok, dann kannste vllt mal durch die 5 oben genannten zeilen durchdebuggn und schauen warum es gelb wird

skerbis commented 5 years ago

ich werde mich drum kümmern ..

skerbis commented 5 years ago

Kann ich aktuell nicht mehr reproduzieren. Ich close hier erstmal.

christophboecker commented 4 years ago

Ich hab einen Verdacht: eine Suche im kompletten Source-Verzeichnis (Addons und Core) gab nur eine einzige Fundstelle für den String 'rex_syslog_last_seen'. Wenn an keiner Stelle irgendwo dieser Session-Wert gesetzt wird, läuft auch jede Abfrage dagegen ins Leere.

Als Gegenprobe habe ich die redaxo/src/core/pages/system.log.redaxo.php am Ende um eine Zeile ergänzt:

...
echo $message;
echo $content;

rex_set_session('rex_syslog_last_seen', filemtime($logFile) );

Und siehe da:

grafik

Über die Minibar gelöst durch einen Zusatz in der boot.php:

if (rex::isBackend()) {
    ...
    if (rex_be_controller::getCurrentPage() == 'system/log/redaxo') {
        rex_extension::register('OUTPUT_FILTER', function (rex_extension_point $ep) {
            rex_set_session('rex_syslog_last_seen', filemtime(rex_logger::getPath()) );
        });
    }

Der zusätzliche Output-Filter bewirkt, dass beim Anzeiger der Log-Seite die Flagge erst noch mal gelb ist. Läst man den Outputfilter weg, ist beim Anzeiges der Log-Seite die Flagge sofort grün.

christophboecker commented 4 years ago

Nächstes Problem: Die Minibar wird wohl generiert, bevor die Seite aufgebaut wird. Wurde zuvor die Logdatei angesehen, ist die Flagge grün gesetzt. Passiert danach beim weiteren Seitenaufbau der Fehler und ein Logeintrag wird geschrieben, kommt die gelbe Flagge erst beim nächsten Seitenaufruf. Das ist m.E. zu spät. Hab dafür aber noch keine Idee.

staabm commented 4 years ago

Nächstes Problem: Die Minibar wird wohl generiert, bevor die Seite aufgebaut wird. Wurde zuvor die Logdatei angesehen, ist die Flagge grün gesetzt. Passiert danach beim weiteren Seitenaufbau der Fehler und ein Logeintrag wird geschrieben, kommt die gelbe Flagge erst beim nächsten Seitenaufruf. Das ist m.E. zu spät. Hab dafür aber noch keine Idee.

Bitte als separates issue

christophboecker commented 4 years ago

Der obige Code für die Lösung gehört natürlich in die Syslog-Klasse :-)