FHEMWEB - Bei Logfile Ausgabe direkt ans untere Ende scrollen

Begonnen von Markus Bloch, 24 März 2015, 00:13:34

Vorheriges Thema - Nächstes Thema

Markus Bloch

Hallo zusammen,

ich finde es momentan etwas nervig bei Logfiles immer manuell nach unten scrollen zu müssen. Es gibt zwar reverse-Log um die neuesten Zeilen oben anzuzeigen, aber wie betateilchen bereits schon an andere Stelle erwähnt hat, frisst das einiges an RAM.

Meine Idee war es daher, das ganze direkt in fhemweb.js zu lösen. Beim Vorhandensein eines <pre>-Tags mit der Klasse "log", soll nach ganz unten gescrollt werden. Dazu habe ich an Zeile 161 in fhemweb.js folgende Zeilen gesetzt (ans Ende der FW_jqueryReadyFn() )

  if($("pre.log").length)  {
      $(window).scrollTop($(document).height());
  }


Prinzipiell funktioniert das auch super, nur was ich mich Frage, wie soll man das ganze bei aktiviertem reverse-Log erkennen? Ich sehe momentan keine Möglichkeit via JS zu erkennen, ob reverse-Log aktiviert ist oder nicht und dann entsprechend zu entscheiden, ob nach unten gescrollt werden soll, oder nicht.

Hat hier jemand eine schlaue Idee, wie man das lösen kann?

Danke

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

justme1968

du kannst mit FW_queryValue per js attribute und readings aus fhem auslesen.

weil safari scheinbar bei scrollTop manchmal das problem hat das alles etwas zappelt habe  ich schon die ganze zeit vor zu schauen ob man reverseLogs nicht so umbauen kann das die zeilen jeweils im browser per js jeweils an den anfang gesetzt werden. ich bin aber noch nicht dazu gekommen es auszuprobieren.

das ganze würde dann im server nicht mehr den speicher overhead haben und man könnte es auch gleich im event monitor verwenden.

gegenüber scrollTop hat es aber vor allem den vorteil das das menü links sichtbar bleibt.

gruss
  andre


hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

Zitat von: Markus Bloch am 24 März 2015, 00:13:34
Beim Vorhandensein eines <pre>-Tags mit der Klasse "log", soll nach ganz unten gescrollt werden.

Ich will das gar nicht so haben. Mein Logfile über 24 Stunden ist maximal zwei Bildschirmseiten lang, und WENN ich schonmal da reinschaue, weil ich einen Fehler suche, dann will ich das Logfile von oben nach unten lesen, ohne (mit Deiner Änderung) erst nach oben scrollen zu müssen.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Markus Bloch

OK, ich habe bei mir eben Monatslogs, damit ich irgendwelche Langzeit-Versuche machen kann. Die sind dann natürlich entsprechend groß.

Ich weis natürlich nicht, wie du dein Logfile benutzt. Bei mir ist es so, dass ich dann in das Log reinschaue, wenn ich eine neue Logmeldung erwarte und dann natürlich immer die aktuellste Logmeldung sofort sehen möchte, sobald ich irgendein Logfile in FHEM öffne und das möglichst ohne reverse-Log.

Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

betateilchen

Ich habe einfach zwei Logs.

Im globalen Logfile werden nur "ungewöhnliche" Meldungen protokolliert, dort finde ich dann auch aufgelaufene Fehler. Per verbose Einstellungen ist dieses Log sehr übersichtlich, pro Tag maximal zwei Bildschirmseiten.

Im DbLog werden alle Messwerte geloggt, die ich für irgendwelche Auswertungen, notifies, SVG usw. brauche. Dort muss ich so gut wie nie reinschauen, weil mich die Messwerte nicht sonderlich interessieren.

Und wenn ich entwickle oder teste und dabei das Verhalten bestimmter devices anhand ihrer Logmeldungen analysieren will, habe ich innerhalb von 10 Sekunden ein zusätzliches FileLog angelegt, das ich genau für diesen Zweck verwende und nach der Analyse wieder lösche.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!