Inhaltsverzeichnis

LogEvents.txt


Einleitung

Nach Aktivierung dieser Logging-Art werden alle Event-Ereignisse protokolliert. Sehr hilfreich bei der Fehlersuche. Dafür muss aber zuerst LogEvents.txt aktiviert sein, siehe Was ist Logging).


Was wird protokolliert?

Protokolliert werden die Event-Ereignisse aus den aktivierten AddOns
Siehe hier: Event-Ereignisse in AddOns


Wo liegt das File?

Das File liegt immer im Cockpit-XP Datenverzeichnis


Beispiel mit Erklärungen

LogEvents.txt
[22.03.2023 09:39:14 464] [93340 KB] RT_Event: StartRealTime Slot=0 Station=0 Parameter=0
[22.03.2023 09:39:14 571] [94152 KB] StarteEventOnThread CreateThread: EventName: StartRealTime PackageName: LPS 2022\LPS - Variablen initialisieren (G)
[22.03.2023 09:39:14 589] [94428 KB] StarteEventOnThread RemoveThread : EventName: StartRealTime PackageName: V:\cp-datenverzeichnis\Cockpit-V2\AddOn\LPS 2022\LPS - Variablen initialisieren (G)
[22.03.2023 09:39:14 594] [94428 KB] StarteEventOnThread CreateThread: EventName: StartRealTime PackageName: SLX - Snippets\SLX - Tesst Code KeyDown
[22.03.2023 09:39:14 596] [94416 KB] StarteEventOnThread RemoveThread : EventName: StartRealTime PackageName: V:\cp-datenverzeichnis\Cockpit-V2\AddOn\SLX - Snippets\SLX - Tesst Code KeyDown
[22.03.2023 09:39:14 611] [94384 KB] RT_Event: ChangeScreen Slot=0 Station=0 Parameter=0
[22.03.2023 09:39:14 921] [104360 KB] RT_Event: ChangeRealTimeStatus Slot=1 Station=1 Parameter=9
[22.03.2023 09:39:15 009] [118724 KB] StarteEventOnThread CreateThread: EventName: ChangeRealTimeStatus PackageName: LPS 2022\LPS - Rundenkorrektur
[22.03.2023 09:39:15 019] [118844 KB] StarteEventOnThread RemoveThread : EventName: ChangeRealTimeStatus PackageName: V:\cp-datenverzeichnis\Cockpit-V2\AddOn\LPS 2022\LPS - Rundenkorrektur
[22.03.2023 09:39:15 026] [118844 KB] StarteEventOnThread CreateThread: EventName: ChangeRealTimeStatus PackageName: LPS 2022\LPS - Variablen initialisieren (G)
[22.03.2023 09:39:15 039] [124704 KB] StarteEventOnThread RemoveThread : EventName: ChangeRealTimeStatus PackageName: V:\cp-datenverzeichnis\Cockpit-V2\AddOn\LPS 2022\LPS - Variablen initialisieren (G)
[22.03.2023 09:39:15 049] [135716 KB] StarteEventOnThread CreateThread: EventName: ChangeRealTimeStatus PackageName: SLX - Snippets\SLX - Tesst Code KeyDown
[22.03.2023 09:39:15 051] [135360 KB] StarteEventOnThread RemoveThread : EventName: ChangeRealTimeStatus PackageName: V:\cp-datenverzeichnis\Cockpit-V2\AddOn\SLX - Snippets\SLX - Tesst Code KeyDown
[22.03.2023 09:39:21 327] [113364 KB] RT_Event: KeyDown Slot=1 Station=1 Parameter=32
[22.03.2023 09:39:21 355] [113384 KB] StarteEventOnThread CreateThread: EventName: KeyDown PackageName: SLX - Snippets\SLX - Tesst Code KeyDown
[22.03.2023 09:39:42 887] [113456 KB] StarteEventOnThread RemoveThread : EventName: KeyDown PackageName: V:\cp-datenverzeichnis\Cockpit-V2\AddOn\SLX - Snippets\SLX - Tesst Code KeyDown

Seit der Version 3.3.1 build 484 wurde das Logging erweitert, um das Finden möglicher Fehler deutlich zu erleichtern.

Neben einem Zeitstempel des Ereignisses bestehend aus Datum und Uhrzeit (mit Millisekunden) ist in gleich im Anschluss die Belegung des Arbeitsspeichers durch Cockpit-XP zu sehen.

Als 32-bit Anwendung teilt Windows Cockpit-XP max. 2 GB RAM zu. Übersteigt der Speicherbedarf diese Schwelle führt das z.B. zu einem Hänger oder Absturz des Programms. Da es im Falles eines Crash kaum nachvollziehbar war, wie die Speicherauslastung aussah, helfen die Werte zukünftig, Threads der Anwendung mit besonders hohem Speicherbedarf zu erkennen.

StarteEventOnThread CreateThread signalisiert, das ein neuer Thread gestartet wurde, während StarteEventOnThread RemoveThread dessen Ende protokolliert.

Neu ist ebenfalls die Anzeige des EventNamens in Verbindung mit dem Package-Name. Letzter ist nichts anderes als der Name des AddOns, welches dem Thread zugeordnet ist. Die Zeilen


[22.03.2023 09:39:21 327] [113364 KB] RT_Event: KeyDown Slot=1 Station=1 Parameter=32
[22.03.2023 09:39:21 355] [113384 KB] StarteEventOnThread CreateThread: EventName: KeyDown PackageName: SLX - Snippets\SLX - Tesst Code KeyDown
[22.03.2023 09:39:42 887] [113456 KB] StarteEventOnThread RemoveThread : EventName: KeyDown PackageName: V:\cp-datenverzeichnis\Cockpit-V2\AddOn\SLX - Snippets\SLX - Tesst Code KeyDown

zeigen, wie ein Event zur Laufzeit (RT_Event) erkannt wird. Hier wurde die Leertaste (Wert Cockpit.Parameter = 32) gedrückt. Darauf hat Cockpit-XP einen Thread gestartet, um den AddOn-Code auszuführen, der zu diesem Ereignis hinterlegt ist. Der Name des AddOns zeigt, welches AddOn hier aufgerufen wurde. Nach Ausführung der im Code definierten Befehle schließt Cockpit den Thread wieder

Zu sehen ist auch, dass der gesamte Vorgang etwas länger als eine halbe Sekunde gedauert hat. Die Speicherbelegung stieg um 20 KB nach dem Drücken der Leertaste. Beim Entfernen des Threads ist zu sehen, dass der Bedarf für die Aktion insgesamt bei 92 KB lag.


LogEvents.txt
[31.03.2023 09:52:43 831] [124976 KB] RT_Event: StartZiel Slot=1 Station=0 Parameter=0
[31.03.2023 09:52:43 831] [124976 KB] RT_Event: SchnellsteRunde Slot=1 Station=0 Parameter=0
[31.03.2023 09:52:45 141] [125368 KB] RT_Event: StartZiel Slot=2 Station=0 Parameter=0
[31.03.2023 09:52:46 233] [125624 KB] RT_Event: StartZiel Slot=3 Station=0 Parameter=0
[31.03.2023 09:52:47 656] [125868 KB] RT_Event: StartZiel Slot=4 Station=0 Parameter=0
[31.03.2023 09:52:49 400] [125524 KB] RT_Event: StartZiel Slot=5 Station=0 Parameter=0
[31.03.2023 09:52:50 930] [125344 KB] RT_Event: StartZiel Slot=6 Station=0 Parameter=0

In diesem Abschnitt ist zu sehen, dass die Fahrzeug-IDs 1-6 nacheinander über StartZiel fahren und ID 1 eine neue schnellste Runde erzielen kann. Hier keine weiteren Aktionen protokolliert. Das lässt den Schluss zu, dass keins der aktivierten AddOns auf das Event StartZiel reagiert.

LogEvent.txt
[31.03.2023 09:53:03 054] [125384 KB] RT_Event: StartZiel Slot=2 Station=0 Parameter=0
[31.03.2023 09:53:03 054] [125384 KB] RT_Event: ChangeRealTimeStatus Slot=1 Station=1 Parameter=3
...
[31.03.2023 09:53:03 163] [125268 KB] StarteEventOnThread RemoveThread : EventName: ChangeRealTimeStatus PackageName: V:\cp-datenverzeichnis\Cockpit-V2\AddOn\SLX - Snippets\SLX - Tesst Code KeyDown
[31.03.2023 09:53:04 470] [125628 KB] RT_Event: StartZiel Slot=3 Station=0 Parameter=0
[31.03.2023 09:53:05 889] [125520 KB] RT_Event: StartZiel Slot=4 Station=0 Parameter=0
[31.03.2023 09:53:07 208] [125440 KB] RT_Event: StartZiel Slot=5 Station=0 Parameter=0
[31.03.2023 09:53:08 629] [125432 KB] RT_Event: StartZiel Slot=6 Station=0 Parameter=0
[31.03.2023 09:53:10 259] [125392 KB] RT_Event: StartZiel Slot=1 Station=0 Parameter=0
[31.03.2023 09:53:10 260] [125392 KB] RT_Event: ChangeRealTimeStatus Slot=1 Station=1 Parameter=4

Hier ist zu sehen, wie das Ende einer Session aussehen kann. In Zeile 1 fährt das Fahrzeug, das Slot 2 zugewiesen ist, über die Ziellinie. Das ChangeRealTimeEvent sendet den Parameter 3. Der steht für das Ereignis „Sieger im Ziel“. Der Fahrer auf Slot 2 hat offenbar gewonnen.

Dann folgen nach und nach die Slots 3, 4, 5, 6 und zum Schluss 1. Wieder reagiert das AddOn mit dem Event ChangeRealTimeStatus auf dieses Ereignis. Da jetzt auch der letzte Fahrer die Ziellinie passiert hat, gilt die Session als regulär beendet. Der Parameter 4 steht „Rennen beendet“.

Nun ist das alles schon was für Fortgeschrittene und solche, die sich für das Vorgehen innerhalb des Programms interessieren. Es soll aber zeigen, dass sich die Abfolge der Ereignisse durch ein oder mehrere AddOns verfolgen lässt und so hilft, einen potentiellen Fehler zu erkennen.