Loggning och diagnostik
Senast uppdaterad: 2026-10-14QV2QS skriver strukturerade diagnostikloggar vid varje körning. Loggningssystemet har två nivåer: en beständig systemlogg som bevaras mellan körningar, och en strukturerad logg per körning som medföljer konverteringens utdata.
Systemlogg
QV2QS underhåller en rullande loggfil på en fast plats på disken. Systemloggen startar när den körbara filen startas och registrerar händelser på applikationsnivå oberoende av projekt eller batch.
Plats: %LOCALAPPDATA%\QV2QS\qv2qs.log
Systemloggen använder en roterande filhanterare med följande inställningar.
| Inställning | Värde |
|---|---|
| Maximal filstorlek | 25 MB |
| Behållna säkerhetskopior | 3 |
| Filmönster | qv2qs.log, qv2qs.log.1, qv2qs.log.2, qv2qs.log.3 |
När den aktiva loggfilen når 25 MB, roterar QV2QS filen och skapar en ny loggfil. De tre senaste säkerhetskopiorna behålls. Äldre säkerhetskopior raderas automatiskt.
Strukturerad logg per körning
Varje konverteringskörning genererar en separat loggfil som innehåller detaljerade händelser för den körningen. Filen heter qv2qs_run_<version>_<timestamp>.log och är skriven i formatet tabbseparerade värden (TSV) med en JSON-datakolumn.
Standardplats: %LOCALAPPDATA%\QV2QS\logs\
I läget för enskilt projekt flyttar QV2QS loggfilen till undermappen logs/ i projektets utdatamapp (till exempel <outputDir>/Sales/logs/) efter att utdatamappen har initierats. Loggfilen inkluderas i konverteringsresultatet.
I batchläge skrivs projektspecifika loggar till undermappen logs/ i respektive projekts utdatamapp.
Loggfilsformat
Varje loggfil inleds med en TSV-rubrikrad:
ts_utc level version run_id logger event message data
| Kolumn | Beskrivning |
|---|---|
ts_utc
|
ISO 8601-tidsmarkör i UTC med millisekundsprecision |
level
|
Loggnivå: DEBUG, INFO, WARNING, ERROR eller CRITICAL |
version
|
QV2QS-version |
run_id
|
Unik körningsidentifierare i formatet YYYYMMDD-HHMMSS-<hex> |
logger
|
Loggernamn (vanligtvis qv2qs) |
event
|
Sträng för händelsetyp (till exempel startup, conversion_complete, batch_local_complete) |
message
|
Mänskligt läsbar beskrivning |
data
|
JSON-objekt med kontextuella nyckel-värde-par |
Tidsstämpelkollisioner
Om två körningar startar inom samma sekund och genererar samma tidsmarkör lägger QV2QS till _2, _3 eller efterföljande nummer i filnamnet för att undvika överskrivning.
Vilken logg som ska kontrolleras
QV2QS skriver till två separata loggar i olika skeden av en körning. Systemloggen är alltid tillgänglig. Loggen för varje körning skapas först efter att startinitieringen har slutförts.
| Scenario | Logg att kontrollera först | Varför |
|---|---|---|
| Processen kraschar eller avslutas omedelbart | Systemlogg | Körningsloggen har inte skapats ännu |
| PRJ-genereringen misslyckas innan konverteringen startar | Systemlogg | PRJ-händelser loggas innan utdatakatalogen initieras |
| En batchkörning visar misslyckade filer utan detaljer | Systemlogg | Fel på batchnivå (saknad QlikView Desktop, misslyckade förutsättningar) registreras i systemloggen |
| Konverteringen ger oväntad utdata | Logg per körning i utdatakatalogen | Konverteringsbeslut och varningar på objektnivå registreras i loggen för respektive körning |
| Molndistribution misslyckas | Logg per körning i utdatakatalogen | API-anrop, autentiseringsfel och uppladdningsförlopp registreras i loggen för varje körning |
Systemloggen och loggen per körning registrerar samma händelser under överlappningsperioden när båda är aktiva. Systemloggen påbörjas vid processens start. Loggen för varje körning påbörjas efter att kommandoradsargumenten har tolkats och utdatakatalogen har skapats. Om ett fel inträffar innan loggen per körning skapas innehåller endast systemloggen diagnostisk information.
Loggnivåer
Fem loggnivåer är tillgängliga, listade från mest till minst utförlig.
| Nivå | Beskrivning |
|---|---|
DEBUG
|
Detaljerad diagnostisk information för felsökning |
INFO
|
Allmänna driftmeddelanden (standard) |
WARNING
|
Oväntade tillstånd som inte förhindrar konvertering |
ERROR
|
Fel som påverkar enskilda objekt eller åtgärder |
CRITICAL
|
Allvarliga fel som stoppar körningen |
Ställ in loggnivån med --logLevel eller miljövariabeln QV2QS_LOG_LEVEL. CLI-flaggan har företräde när båda är angivna.
Ställ in --logLevel DEBUG för att samla in den mest detaljerade utdatan. Poster på felsökningsnivå omfattar konverteringsbeslut, moln-API-anrop, skriptändringar och detaljer om objektbearbetning.
För att aktivera felsökningsloggning utan att ändra kommandoraden, ställ in miljövariabeln innan du kör QV2QS:
set QV2QS_LOG_LEVEL=DEBUG
QV2QS.exe --prjPath ./MyApp-prj --outputDir ./output --qvw MyApp.qvw --unbuildOnly
Loggrensning
Loggfiler ackumuleras mellan körningar i den permanenta loggkatalogen. Använd --cleanLogs för att ta bort loggfiler som är äldre än 30 dagar i början av en körning. Rensningen gäller endast den beständiga loggkatalogen; projektspecifika loggar i utdatakataloger påverkas inte.
Maskering av hemligheter
Loggposter maskerar automatiskt känsliga värden. API-nycklar, tokens, lösenord och klienthemligheter maskeras så att endast de fyra sista tecknen visas. Kommandoradsargument som innehåller hemligheter maskeras också när de loggas.
QlikView Desktop-motorloggning
När PRJ-generering är aktiverad loggar QV2QS vilken QlikView Desktop-motor som används för varje fil. Logghändelsen prj_generate_start registrerar huruvida den medföljande portabla motorn eller en systeminstallerad version är aktiv och inkluderar den medföljande körbara filens filversion när den är tillgänglig.
Efter att kopplingen till QlikView Desktop har upprättats registrerar händelsen prj_qv_ready den QlikView-version som rapporteras av motorn som körs (till exempel 12.100.20100.0). När den medföljande motorn används registrerar fältet exe_file_version filversionen som lästs från den körbara filen.
I batchläge registrerar logghändelsen prj_batch_prereq motorvalet och den medföljande versionen för hela batchen innan några filer bearbetas. Om varken en medföljande motor eller en systeminstallation är tillgänglig loggas felet som prj_batch_no_qv i systemloggen.
Ange --logLevel DEBUG för att registrera detaljerade steg för motorupplösning, inklusive de filsökvägar som kontrolleras under motoridentifieringen.
Konsolutdata jämfört med filloggning
Konsolutdata och filloggning är oberoende system.
| Aspekt | Konsol | Fillogg |
|---|---|---|
| Format | Formaterad text med valfria färger och spinners | Strukturerad TSV med JSON-data |
| Styrs av | --console pretty\|plain\|silent\|ui
|
--logLevel, --logDir |
| Innehåll | Användarriktade förlopp och resultat | Fullständiga diagnostikhändelser |
| Hemlighetsmaskering | Ej tillämpligt | Tillämpas automatiskt |
Konsolutdata visas inte i loggfilerna. Flaggan --console silent undertrycker konsolutdata utan att påverka filloggning.
CLI-argument
| Argument | Beskrivning | Standard |
|---|---|---|
--logLevel LEVEL
|
Loggningsdetaljnivå: DEBUG, INFO, WARNING, ERROR, CRITICAL |
INFO
|
--logDir FOLDER
|
Åsidosätt utdatamappen för loggar per körning. Relativa sökvägar utgår från den aktuella arbetskatalogen, inte från utdatakatalogen. Påverkar inte den permanenta systemloggen på %LOCALAPPDATA%. |
%LOCALAPPDATA%\QV2QS\logs\ (enskilt projekt) eller <outputDir>/logs/ (batch) |
--cleanLogs
|
Ta bort loggfiler som är äldre än 30 dagar före körningen | Av |