Detail
Fehlerbehebung
Wichtig
Es soll möglich sein die Log Einträge aus der aktuellen Session anzuzeigen.
Umsetzung
Es gibt im Drop-Down Menü der "Nutzereinstellungen" jetzt den Knopf "Log anzeigen...". Dieser parst das Log, filtert nach der ID der aktuellen Session und zeigt die gefundenen Log Einträge in einer Tabelle an.
Code Migration
Log-Dialog erben oder hinzufügen
Um den Log-Dialog zu sehen, muss der Dialog registriert sein. Dafür gibt es mehrere Wege:
Overlay Layout XML
Dazu sollte die Anwendung die Datei mainTabbar.layout.xml nicht komplett überschreiben. Statt dessen sollten eigene Tabs per Overlay hinzugefügt werden. Das bedeutet, die Datei muss nach mainTabbar.layout.overlay.xml umbenannt werden und der Inhalt muss angepasst werden. Reduziertes Beispiel aus Commit 46a926af15:
Vorher:
#!xml <config:template-call xmlns:config="http://www.top-logic.com/ns/config/6.0" template="com.top_logic/maintabbar.template.xml" > <arguments> <components> <layout-reference resource="com.top_logic.demo/structure/index.layout.xml"/> <layout-reference resource="admin/index.layout.xml"/> </components> </arguments> </config:template-call>
Nachher:
Die Datei admin/index.layout.xml wird bereits im Framework eingebunden und hier deswegen nicht mehr aufgeführt:
#!xml <arguments> <components> <layout-reference resource="com.top_logic.demo/structure/index.layout.xml"/> </components> </arguments>
mainTabbar.layout.xml
Alternativ, wenn ein Overlay nicht gewünscht wird, muss der Dialog in die oben genannte Datei übernommen werden:
#!xml <arguments> <dialogs> <layout-reference resource="com.top_logic.monitoring/admin/technical/logs/logLines.sessionDialog.layout.xml"/> </dialogs> </arguments>
!GlobalDialogs.xml
Wenn die Datei GlobalDialogs.xml in der Anwendung überschrieben ist, kann der Dialog auch hier eingefügt werden. Siehe zum Beispiel folgende Zeile in der GlobalDialogs.xml in com.top_logic.demo:
#!xml <layout-reference resource="com.top_logic.monitoring/admin/technical/logs/logLines.sessionDialog.layout.xml"/>
Test
- Automatisch, ohne Prüfung auf Inhalt: TestLogLinesSessionDialog.script.xml
- Manuell, mit Prüfung auf Inhalt:
- Im Demo in folgende Sicht gehen: Technisches Demo > Layout Framework #1 > Formulare > Error Page
- Im Drop-Down Menü der "Nutzereinstellungen" den Knopf "Log anzeigen..." drücken.
- Prüfen, dass der Error dort angezeigt wird.
- Prüfen, dass keine Log Meldungen anderer Sessions angezeigt werden.