Konsole

Der laufende Diagnosestrom des ausgeführten Programms: 500 Einträge im Arbeitsspeicher, durchsucht und gefiltert nach Stufe, Bereich und Komponente, mit ausführlicher Aufzeichnung und Supportpaket zur Fehlersuche.

Als Markdown ansehen

Die Registerkarte Konsole von Ereignisse (/events?view=console) ist der Diagnosestrom des ganzen Programms: Jedes Teilsystem (die Anwendung, der eingebettete OPC UA Server, die Treiber, Logic, Process, die Dashboards, der Agentenzugriff und die Lizenzierung) schreibt in einen Strom, und die Konsole zeigt dessen jüngste 500 Einträge, live. Sie ist die letzte Registerkarte, weil sie das technische Detail trägt, das zuletzt gelesen wird, nach den typisierten Verläufen. Sie zu sehen setzt Ereignisse anzeigen voraus; Zeilen zu exportieren oder ein Supportpaket zu erstellen setzt Historien exportieren/importieren voraus; eine ausführliche Aufzeichnung zu starten oder zu beenden setzt Einstellungen ändern voraus.

Der Strom und sein Puffer

Die Konsole ist eine Projektion des einen Diagnoseflusses des Prozesses, im Arbeitsspeicher gehalten: die neuesten 500 Einträge, geteilt von jeder Fläche, die ihn zeigt (dem Fenster der Station selbst, jedem entfernten Browser, jeder Registerkarte). Ältere Einträge fallen heraus, sobald neue eintreffen; nichts auf dieser Registerkarte übersteht einen Neustart. Derselbe Fluss wird in eine täglich rollierende Datei geschrieben, logs\ganter-lab-<date>.log im Datenordner der Station (30 Tage aufbewahrt, 50 MB je Datei), und genau diese sammelt ein Supportpaket ein.

Jeder Eintrag wird bereinigt, bevor er die Konsole oder die Datei erreicht: Kennwörter, Token, Schlüssel und Anmeldedaten in URLs werden durch "[REDACTED]" ersetzt, Protokollnutzdaten (rohe Bytes, JSON- oder XML-Dokumente) durch "[PROTOCOL PAYLOAD OMITTED]", eine Meldung wird bei 16 KB und eine Ausnahme bei 64 KB mit "…[TRUNCATED]" abgeschnitten. Nur Einträge ab der Stufe Information gelangen in den Strom; ausführliches Detail und Einträge, die ein Erzeuger als Diagnosedetail kennzeichnet (rohes, sich wiederholendes Protokollgeplauder), erreichen allein eine Datei der ausführlichen Aufzeichnung. Wiederkehrende Kommunikationsfehler werden von ihrem Erzeuger zu einer Zeile für den ersten Fehler, regelmäßigen Zusammenfassungen und einer Zeile für die Erholung zusammengefasst, damit ein gestörtes Gerät die Liste nicht überschwemmt.

Ein Eintrag

Jede Zeile zeigt die Tageszeit, einen Punkt für die Stufe (neutral für Info, warnend für Warnung, kritisch für Fehler), "Bereich · Komponente" und die Meldung. Die Schaltfläche Zeile kopieren am rechten Rand einer Zeile kopiert "vollständiger Zeitstempel [Schweregrad] Bereich · Komponente Meldung", und das Aktionsprotokoll antwortet "Zeile in die Zwischenablage kopiert." (oder "Die Zwischenablage hat das Kopieren verweigert." in einem Browser, der die Zwischenablage zurückhält). Ein Klick auf die Zeile wählt sie aus und öffnet den Detailbereich.

Das Feld "Meldungen und den gesamten verfügbaren Kontext durchsuchen" filtert schon während des Tippens, ohne Verzögerung. Eine Zeile passt, wenn der Text (ohne Beachtung der Groß- und Kleinschreibung) in einem der folgenden Felder enthalten ist: der Meldung, dem Bereich, der Komponente, dem Logger, dem Gerät, dem Tag, dem Vorgang, dem Client, der Sitzung, der Einheit, dem Ablauf, der Laufkennung oder dem Detailtext (einer Ausnahme und ihrer Stapelüberwachung).

Die Chips der Stufen

Drei Chips, Information, Warnung und Fehler, jeder ein Umschalter mit einem Punkt im Ton der Stufe und einer laufenden Zählung. Ein eingeschalteter Chip zeigt seine Stufe; ein Klick blendet diese Stufe aus. Die Zählung sagt, wie viele Einträge der Chip unter der aktuellen Suche und den aktuellen Filtern für Bereich und Komponente offenlegen würde: Sie achtet auf diese drei Filter und übergeht die Umschalter der Stufen selbst, eine ausgeblendete Stufe wirbt also weiterhin mit dem, was sie hält. Alle drei beginnen eingeschaltet.

Es gibt keinen Chip für Debug: Einträge unterhalb von Information gelangen nie in den Strom, ein Chip dafür könnte also immer nur 0 anzeigen und nichts ausblenden. Ausführliches Detail findet sich stattdessen in einer Datei der ausführlichen Aufzeichnung.

Die Listen Bereich und Komponente

Liste Werte Was sie tut
Bereich Alle Bereiche (Vorgabe), dann einer je Teilsystem: App, Server, Connector, Logic, Process, Dashboard, Agent, Lizenzierung Behält die Einträge eines Teilsystems.
Komponente Alle Komponenten (Vorgabe), dann jede Komponente, die im Puffer für den gewählten Bereich vorkommt, alphabetisch sortiert Behält die Einträge eines konkreten Erzeugers innerhalb des Bereichs (eines Treibers, eines Arbeiters, des OPC UA SDK).
Bereich Was dort schreibt
App Der Lebenszyklus der Anwendung: der Desktop-Host, die Protokollierung, die Behandlung von Abstürzen und Aktualisierungen, die eigenen Fehler des Ereignisjournals und alles, was keinen anderen Bereich genannt hat.
Server Der eingebettete OPC UA Server und sein SDK.
Connector Die Kommunikation mit den Geräten: der Connector, die Treiber, das Lesen und Schreiben von Tags.
Logic Variablen, Aktionen, Auslöser, Alarme und der Schreibkanal für Schreibvorgänge.
Process Modelle, Rezepte, Bewertungen, Ereigniseinträge, die Verriegelungsüberwachung und der Lebenszyklus eines Laufs.
Dashboard Befehle, die auf Dashboards gedrückt wurden, und der eingebettete Webhost, der sie ausliefert.
Agent Was ein KI-Agent über MCP getan hat.
Lizenzierung Die Lizenz der Station und die Begrenzung der unlizenzierten Runtime.

Die von Ihnen gewählte Komponente bleibt in der Liste, auch nachdem jeder Eintrag mit ihr aus dem Puffer gefallen ist, damit ein Filter, der einen Treiber beobachten soll, nicht still auf jede Komponente geweitet wird; eine leere Liste ist dann die ehrliche Antwort. Ein Wechsel des Bereichs baut die Liste der Komponenten für diesen Bereich neu auf.

Dem Ende folgen

Mit eingeschaltetem Ende verfolgen (automatischer Bildlauf) (der Vorgabe) klebt die Liste am neuesten Eintrag, während der Strom wächst. Ein Bildlauf nach oben schaltet es aus, so dass Sie etwas lesen können, während weiter Einträge eintreffen; ein Bildlauf zurück bis auf 24 Pixel an den unteren Rand schaltet es wieder ein. Solange es aus ist, zählt eine Pille "N neue Einträge" (oder "1 neuer Eintrag") die Ankünfte, die zu den aktuellen Filtern passen; ein Klick darauf oder auf die Schaltfläche in der Befehlsleiste springt zurück ans Ende. Ein Wechsel auf eine andere Registerkarte und zurück bewahrt den Zustand des Verfolgens und springt ans Ende, wenn es eingeschaltet war.

Die Befehlsleiste

Befehl Was er tut Ausgegraut, wenn Nicht gezeichnet, wenn
Aufzeichnung starten / Aufzeichnung beenden Startet eine ausführliche Diagnoseaufzeichnung für bis zu 15 Minuten oder beendet die laufende (siehe unten). Während der Umschaltung Der Rolle fehlt Einstellungen ändern
In Fenster öffnen Öffnet die Seite Ereignisse in einer neuen Registerkarte oder einem neuen Fenster des Browsers, im Fenster der Station selbst ebenso wie in einem entfernten Browser, so dass der Strom auf einem zweiten Bildschirm stehen bleiben kann. Das neue Fenster öffnet auf der Registerkarte Konsole, also der, auf der die Schaltfläche sitzt. Ein Browser, der Pop-ups blockiert, öffnet nichts, und das Aktionsprotokoll sagt es: "Der Browser wollte kein zweites Fenster öffnen. Erlauben Sie Pop-ups für diese Station und versuchen Sie es erneut."
Zeilenumbruch Bricht lange Meldungen auf mehrere Zeilen um, statt sie abzuschneiden.
Ende verfolgen (automatischer Bildlauf) Schaltet das Verfolgen ein (springt ans Ende und löscht die Zählung neuer Einträge) oder aus.
Ansicht leeren Leert den Strom im Arbeitsspeicher auf allen Flächen zugleich: das Fenster der Station, jeder entfernte Browser und jede Registerkarte sehen dieselbe leere Liste. Das Aktionsprotokoll antwortet "Konsolenansicht für die ganze Station geleert." Die rollierenden Protokolldateien, die Dateien der Aufzeichnungen und das Ereignisjournal bleiben unberührt. Die Runtime ist gestoppt: Die Schaltfläche ist ausgegraut, und ihr Tooltip sagt, dass die Station gerade keine Änderung annimmt Der Rolle fehlt Einstellungen ändern
Export Öffnet das Menü: Als CSV exportieren…, Als JSON exportieren… und, nach einem Trenner, Supportpaket erstellen…. Supportpaket erstellen ist ausgegraut, solange eines gebaut wird Der Rolle fehlt Historien exportieren/importieren

Ausführliche Aufzeichnung

Aufzeichnung starten hebt den ganzen Prozess für bis zu fünfzehn Minuten auf ausführliche Protokollierung und schreibt alles, ausführliches Detail und Protokollgeplauder eingeschlossen, in eine eigene Datei der Aufzeichnung: logs\diagnostic-captures\ganter-temporary-diagnostic-<stamp>-<id>.log im Datenordner der Station (eine Sitzung rolliert bei 25 MB und behält zwei Dateien; die zehn jüngsten Sitzungen werden aufbewahrt). Der Strom mit 500 Einträgen und die gewöhnliche rollierende Datei bleiben genau so, wie sie waren: Nichts Zusätzliches erreicht sie.

Die Schaltfläche lautet dann Aufzeichnung beenden; ihr Tooltip sagt "Die ausführliche Diagnoseaufzeichnung vorzeitig beenden. Gestartet hh:mm:ss." Die Aufzeichnung endet von selbst, wenn der Countdown null erreicht, wenn Sie die Schaltfläche drücken oder wenn die Anwendung heruntergefahren wird. Beide Enden werden im Aktionsprotokoll angesagt ("Ausführliche Aufzeichnung für bis zu 15 Minuten gestartet.", "Ausführliche Aufzeichnung beendet.") und hinterlassen Konsolenzeilen unter App · Diagnostic capture.

Die Aufzeichnung ist ein Schalter für die ganze Station: Jeder Kreis sieht denselben Countdown, und sie überlebt das Fenster, das sie gedrückt hat. Darum setzt sie Einstellungen ändern voraus: Einer Rolle ohne diese Berechtigung wird die Schaltfläche nicht gezeichnet, und ein Druck, der dennoch die Verarbeitung erreicht, antwortet "Das Starten oder Beenden der ausführlichen Aufzeichnung benötigt die Berechtigung Einstellungen ändern." Was die Aufzeichnung tut, steht unter keiner Berechtigung: Während sie läuft, trägt eine Anzeige neben der Schaltfläche einen Aufnahmepunkt, "Ausführliche Aufzeichnung läuft" und die verbleibende Zeit (mm:ss, ab 15:00), und jede Rolle liest sie. Zeichnet nichts auf, bleibt dieselbe Anzeige dem Screenreader vorbehalten, der "Ausführliche Aufzeichnung inaktiv" liest.

Supportpaket erstellen

Der letzte Eintrag des Menüs Export baut eine ZIP-Datei, die dem Support übergeben wird, und lädt sie über den Browser herunter; das Aktionsprotokoll antwortet "Supportpaket erstellt:" gefolgt vom Dateinamen (ganter-support-<stamp>-<id>.zip) oder "Supportpaket fehlgeschlagen:" gefolgt vom Grund. Es setzt wie jeder Export Historien exportieren/importieren voraus. Das Paket enthält:

Eintrag Inhalt
recent-console.json Die Einträge des Stroms im Arbeitsspeicher als strukturierte Datensätze (jedes Feld jedes Eintrags, nicht die gefilterte Ansicht).
logs/ganter-lab-*.log Die gewöhnlichen rollierenden Protokolldateien.
diagnostic-captures/ganter-temporary-diagnostic-*.log Die Dateien der ausführlichen Aufzeichnungen.
manifest.json Wann es erzeugt wurde, der Zustand der Aufzeichnung (aktiv, gestartet, endet, beendet, Dateiname), wie viele Einträge des Stroms aufgenommen wurden, die Grenzen, die Liste der aufgenommenen Dateien mit ihren Größen und jede Auslassung mit ihrem Grund.

Die Dateien werden innerhalb eines Budgets von den neuesten her genommen: höchstens 8 Dateien, höchstens 24 MB je Datei und 96 MB insgesamt; eine Datei, die größer ist als ihr Anteil, wird nur mit ihrem Ende aufgenommen (ihren neuesten Bytes), und das Manifest sagt es. Die ZIP-Datei wird im temporären Ordner des Systems gebaut und gelöscht, sobald der Download ausgeliefert ist.

Der Detailbereich

Das Auswählen eines Eintrags öffnet den Bereich mit dem Abzeichen des Schweregrads, "Bereich · Komponente" und einem Kreuz zum Schließen, dann:

Abschnitt Feld Inhalt
Kopf Zeitstempel Vollständiges Datum mit Uhrzeit und Millisekunden.
Kopf Meldung Die einzeilige Meldung.
KONTEXT Bereich Das Teilsystem.
KONTEXT Komponente Der konkrete Erzeuger.
KONTEXT Logger Die Loggerkategorie hinter dem Eintrag, gezeigt, wenn sie bekannt ist.
KONTEXT Stufe Debug, Information, Warnung oder Fehler.
KONTEXT Gerät, Tag, Vorgang, Client, Sitzung, Einheit, Ablauf, Lauf Jedes nur gezeigt, wenn der Eintrag es trägt: das Gerät und das Tag, auf die sich eine Zeile des Connectors bezieht, der untersuchte Vorgang (ein Lesen, ein Schreiben, eine Verbindung), der OPC- oder Protokollclient und die Sitzung sowie Einheit, Ablauf und Laufkennung aus Process.
DETAILS Der Text der Ausnahme und ihre Stapelüberwachung, wenn der Eintrag eine trug.

Eintrag kopieren am Fuß kopiert den ganzen Bereich als Text (die Kopfzeile, die Meldung, je eine Zeile "Bezeichnung: Wert" pro Kontextfeld, dann den Detailblock) und antwortet "Eintrag in die Zwischenablage kopiert." Die Auswahl entfällt, wenn der Eintrag aus dem Puffer fällt, und wird von Ansicht leeren aufgehoben.

Export

Als CSV exportieren… und Als JSON exportieren… schreiben die gerade sichtbaren Zeilen (die gefilterte Ansicht) als Browser-Download namens app-logs-<yyyyMMdd-HHmmss>.csv oder .json; das Aktionsprotokoll antwortet "N Zeile(n) exportiert nach" gefolgt vom Dateinamen. Beide tragen dieselben Spalten, in dieser Reihenfolge: Timestamp (in der CSV mit "Timestamp (UTC-03:00)" überschrieben, der einmal erklärte Zeitbezug), Severity, Area, Component, Logger, Device, Tag, Operation, Client, Session, Unit, Procedure, RunId, Message und Exception. Die JSON ist ein Umschlag, { "TimeZone": "...", "Entries": [ ... ] }. Einer CSV-Zelle, die mit =, +, - oder @ beginnt, wird ein Apostroph vorangestellt, damit eine Tabellenkalkulation sie als Text liest.

Die Statuszeile

"N angezeigt · M im Puffer", dann " · gefiltert", solange eine Suche oder ein Filter für Bereich, Komponente oder Stufe wirkt; rechts "1 ausgewählt", solange ein Eintrag ausgewählt ist, und "Aktualisiert hh:mm:ss", die Zeit des zuletzt eingetroffenen Eintrags. Wenn nichts passt, lautet die Liste "Keine Einträge passen zu den aktuellen Filtern. Passen Sie Stufe, Bereich, Komponente oder Suche an, um mehr zu sehen."

Was die Konsole nicht tut

  • Sie ist keine Aufzeichnung: Sie hält 500 Einträge im Arbeitsspeicher, verliert sie bei einem Neustart, und Ansicht leeren leert sie für alle. Die dauerhafte Aufzeichnung sind die drei Verläufe und, auf der Platte, die rollierenden Protokolldateien.
  • Sie zeigt nichts unterhalb von Information und nie das Protokolldetail; dafür ist eine ausführliche Aufzeichnung da.
  • Ansicht leeren löscht keine Datei und keine Journalzeile, wird abgewiesen, solange die Runtime gestoppt ist, und wird nur für eine Rolle gezeichnet, die Einstellungen ändern darf, wie Export und Aufzeichnung starten daneben.
  • Die ausführliche Aufzeichnung lässt sich nicht über fünfzehn Minuten hinaus verlängern; starten Sie eine weitere.
  • Der Export schreibt, was sichtbar ist, nie die Dateien auf der Platte; das Supportpaket ist der Weg, auf dem die Dateien die Station verlassen.
  • Ein Agent mit geöffnetem Bereich Logs liest denselben Strom über logs_read (siehe Werkzeuge); leeren kann er ihn nicht.