Protokollierung und Diagnose
Letzte Aktualisierung: 14.10.2026QV2QS schreibt bei jedem Lauf strukturierte Diagnoseprotokolle. Das Protokollierungssystem hat zwei Ebenen: ein persistentes Systemprotokoll, das über mehrere Läufe hinweg bestehen bleibt, und ein strukturiertes Protokoll pro Lauf, das mit der Konvertierungsausgabe geliefert wird.
Systemprotokoll
QV2QS pflegt eine rotierende Protokolldatei an einem festen Standort auf der Festplatte. Das Systemprotokoll beginnt, wenn die ausführbare Datei gestartet wird, und zeichnet Ereignisse auf Anwendungsebene auf, unabhängig von jedem Projekt oder Batch.
Standort: %LOCALAPPDATA%\QV2QS\qv2qs.log
Das Systemprotokoll verwendet einen rotierenden Dateihandler mit den folgenden Einstellungen.
| Einstellung | Wert |
|---|---|
| Maximale Dateigröße | 25 MB |
| Sicherungsdateien aufbewahrt | 3 |
| Dateimuster | qv2qs.log, qv2qs.log.1, qv2qs.log.2, qv2qs.log.3 |
Wenn die aktive Protokolldatei 25 MB erreicht, dreht QV2QS die Datei und erstellt eine neue Protokolldatei. Die drei aktuellsten Backups werden beibehalten. Ältere Backups werden automatisch gelöscht.
Laufspezifisches strukturiertes Protokoll
Jeder Konvertierungslauf erzeugt eine separate Protokolldatei, die detaillierte Ereignisse für diesen Lauf enthält. Die Datei heißt qv2qs_run_<version>_<timestamp>.log und liegt im Tabulator-getrennte Werte (TSV)-Format mit einer JSON-Datenspalte vor.
Standard-Standort: %LOCALAPPDATA%\QV2QS\logs\
Im Einzelprojektmodus verschiebt QV2QS die Protokolldatei in den logs/ Unterordner des Projektausgabeordners (zum Beispiel <outputDir>/Sales/logs/), nachdem der Ausgabeordner initialisiert wurde. Die Protokolldatei ist in der Konvertierungsausgabe enthalten.
Im Stapelmodus werden projektbezogene Protokolle in den logs/ Unterordner innerhalb jedes Projektausgabeordners geschrieben.
Protokolldateiformat
Jede Protokolldatei beginnt mit einer TSV-Kopfzeile:
ts_utc level version run_id logger event message data
| Spalte | Beschreibung |
|---|---|
ts_utc
|
ISO 8601 Zeitstempel in UTC mit Millisekunden-Präzision |
level
|
Protokollstufe: DEBUG, INFO, WARNING, ERROR, oder CRITICAL |
version
|
QV2QS Version |
run_id
|
Eindeutiger Laufbezeichner im Format YYYYMMDD-HHMMSS-<hex> |
logger
|
Logger-Name (typischerweise qv2qs) |
event
|
Ereignistyp-String (zum Beispiel, startup, conversion_complete, batch_local_complete) |
message
|
Menschenlesbare Beschreibung |
data
|
JSON-Objekt mit kontextbezogenen Schlüssel-Wert-Paaren |
Zeitstempelkollisionen
Wenn zwei Läufe innerhalb derselben Sekunde starten und denselben Zeitstempel erzeugen, hängt QV2QS _2, _3 oder nachfolgende Nummern an den Dateinamen an, um ein Überschreiben zu vermeiden.
Welches Protokoll ist zu prüfen
QV2QS schreibt in zwei separate Protokolle in verschiedenen Phasen eines Laufs. Das Systemprotokoll ist immer verfügbar. Das Pro-Lauf-Protokoll wird erst nach Abschluss der Startinitialisierung erstellt.
| Szenario | Protokoll zuerst prüfen | Warum |
|---|---|---|
| Der Prozess stürzt ab oder wird sofort beendet | Systemprotokoll | Das Protokoll pro Lauf wurde noch nicht erstellt |
| Die PRJ-Generierung schlägt fehl, bevor die Konvertierung beginnt | Systemprotokoll | PRJ-Ereignisse werden protokolliert, bevor das Ausgabeverzeichnis initialisiert wird |
| Ein Batchlauf zeigt fehlgeschlagene Dateien ohne Details | Systemprotokoll | Fehler auf Batchebene (fehlendes QlikView Desktop, Fehler bei Voraussetzungen) werden im Systemprotokoll aufgezeichnet |
| Konvertierung führt zu unerwarteter Ausgabe | Pro-Lauf-Protokoll im Ausgabeverzeichnis | Entscheidungen und Warnungen zur Konvertierung auf Objektebene werden im Protokoll pro Ausführung protokolliert |
| Cloud-Bereitstellung schlägt fehl | Pro-Lauf-Protokoll im Ausgabeverzeichnis | API-Aufrufe, Authentifizierungsfehler und der Upload-Fortschritt werden im Protokoll pro Ausführung protokolliert |
Das Systemprotokoll und das Pro-Lauf-Protokoll zeichnen die gleichen Ereignisse während des Überlappungszeitraums auf, wenn beide aktiv sind. Das Systemprotokoll beginnt beim Start des Prozesses. Das Laufprotokoll beginnt, nachdem die Befehlszeilenargumente analysiert und das Ausgabeverzeichnis erstellt wurden. Wenn ein Fehler auftritt, bevor das Ausführungs-Protokoll erstellt wird, enthält nur das Systemprotokoll Diagnoseinformationen.
Protokollstufen
Fünf Log-Level stehen zur Verfügung, aufgelistet von der ausführlichsten zur am wenigsten ausführlichen.
| Ebene | Beschreibung |
|---|---|
DEBUG
|
Detaillierte Diagnoseinformationen zur Fehlerbehebung |
INFO
|
Allgemeine Betriebsmitteilungen (Standard) |
WARNING
|
Unerwartete Bedingungen, die die Konvertierung nicht verhindern |
ERROR
|
Fehler, die einzelne Objekte oder Operationen betreffen |
CRITICAL
|
Schwere Fehler, die die Ausführung anhalten |
Legen Sie die Protokollstufe mit --logLevel oder der QV2QS_LOG_LEVEL Umgebungs-Variable fest. Das CLI-Flag hat Vorrang, wenn beide gesetzt sind.
Stellen Sie --logLevel DEBUG so ein, dass die detaillierteste Ausgabe erfasst wird. Einträge auf Debug-Ebene umfassen Konvertierungsentscheidungen, Cloud-API-Aufrufe, Skriptänderungen und Details zur Objektverarbeitung.
Um die Debug-Protokollierung zu aktivieren, ohne die Befehlszeile zu ändern, setzen Sie die Umgebungsvariable, bevor Sie QV2QS ausführen:
set QV2QS_LOG_LEVEL=DEBUG
QV2QS.exe --prjPath ./MyApp-prj --outputDir ./output --qvw MyApp.qvw --unbuildOnly
Protokollbereinigung
Protokolldateien sammeln sich über Läufe hinweg im persistenten Protokollverzeichnis an. Verwenden Sie --cleanLogs, um Protokolldateien, die älter als 30 Tage sind, zu Beginn eines Laufs zu löschen. Die Bereinigung betrifft nur das persistente Protokollverzeichnis; projektbezogene Protokolle in Ausgabeverzeichnissen sind nicht betroffen.
Geheimnismaskierung
Log-Einträge maskieren sensible Werte automatisch. API-Schlüssel, Token, Passwörter und Client-Geheimnisse werden geschwärzt, sodass nur die letzten vier Zeichen angezeigt werden. Kommandozeilenargumente, die vertrauliche Informationen enthalten, werden bei der Protokollierung ebenfalls maskiert.
QlikView Desktop-Engine-Protokollierung
Wenn die PRJ-Generierung aktiviert ist, protokolliert QV2QS, welche QlikView Desktop-Engine für jede Datei verwendet wird. Das Protokollereignis prj_generate_start zeichnet auf, ob die gebündelte portable Engine oder eine systeminstallierte Version aktiv ist und die Dateiversion der gebündelten ausführbaren Datei enthält, sofern verfügbar.
Nachdem die Verbindung zu QlikView Desktop hergestellt wurde, erfasst das Ereignis prj_qv_ready die QlikView-Version, die von der laufenden Engine gemeldet wird (zum Beispiel, 12.100.20100.0). Wenn die gebündelte Engine verwendet wird, erfasst das exe_file_version Feld die Dateiversion, die aus der ausführbaren Datei gelesen wurde.
Im Stapelmodus zeichnet das Protokollereignis prj_batch_prereq die Engine-Auswahl und die gebündelte Version für den gesamten Stapel auf, bevor Dateien verarbeitet werden. Wenn weder eine gebündelte Engine noch eine Systeminstallation verfügbar ist, wird der Fehler als prj_batch_no_qv im Systemprotokoll protokolliert.
Stellen Sie --logLevel DEBUG so ein, dass detaillierte Schritte zur Engine-Auflösung erfasst werden, einschließlich der Dateipfade, die während der Engine-Erkennung überprüft wurden.
Konsolenausgabe vs. Dateiprotokollierung
Konsolenausgabe und Dateiprotokollierung sind unabhängige Systeme.
| Aspekt | Konsole | Dateiprotokoll |
|---|---|---|
| Format | Formatierter Text mit optionalen Farben und Ladeanzeigen | Strukturierte TSV mit JSON-Daten |
| Gesteuert von | --console pretty\|plain\|silent\|ui
|
--logLevel, --logDir |
| Inhalt | Benutzerorientierter Fortschritt und Ergebnisse | Vollständige diagnostische Ereignisse |
| Geheimnismaskierung | Nicht zutreffend | Automatisch angewendet |
Konsolenausgabe erscheint nicht in den Protokolldateien. Das --console silent Flag unterdrückt die Konsolenausgabe, ohne die Dateiprotokollierung zu beeinflussen.
CLI-Argumente
| Argument | Beschreibung | Standard |
|---|---|---|
--logLevel LEVEL
|
Protokoll-Ausführlichkeit: DEBUG, INFO, WARNING, ERROR, CRITICAL |
INFO
|
--logDir FOLDER
|
Den pro-Lauf Protokollausgabeordner überschreiben. Relative Pfade werden vom aktuellen Arbeitsverzeichnis aus aufgelöst, nicht vom Ausgabeverzeichnis. Beeinträchtigt nicht das persistente Systemprotokoll unter %LOCALAPPDATA%. |
%LOCALAPPDATA%\QV2QS\logs\ (Einzelprojekt) oder <outputDir>/logs/ (Stapel) |
--cleanLogs
|
Löschen Sie vor der Ausführung Protokolldateien, die älter als 30 Tage sind | Aus |