Logowanie i diagnostyka
Ostatnia aktualizacja: 14.10.2026QV2QS zapisuje ustrukturyzowane dzienniki diagnostyczne podczas każdego uruchomienia. System logowania ma dwie warstwy: trwały dziennik systemowy, który zachowuje się po kolejnych uruchomieniach, oraz strukturalny dziennik dla każdego uruchomienia, który jest dostarczany wraz z wynikami konwersji.
Dziennik systemowy
QV2QS utrzymuje cykliczny plik dziennika w stałej lokalizacji na dysku. Dziennik systemowy rozpoczyna się wraz z uruchomieniem pliku wykonywalnego i rejestruje zdarzenia na poziomie aplikacji niezależnie od projektu lub partii.
Lokalizacja: %LOCALAPPDATA%\QV2QS\qv2qs.log
Dziennik systemowy używa obrotowego modułu obsługi plików z następującymi ustawieniami.
| Ustawienie | Wartość |
|---|---|
| Maksymalny rozmiar pliku | 25 MB |
| Zachowane pliki kopii zapasowych | 3 |
| Wzór pliku | qv2qs.log, qv2qs.log.1, qv2qs.log.2, qv2qs.log.3 |
Gdy aktywny plik dziennika osiągnie 25 MB, QV2QS obraca plik i tworzy nowy plik dziennika. Zachowywane są trzy najnowsze kopie zapasowe. Starsze kopie zapasowe są usuwane automatycznie.
Log strukturalny dla każdego uruchomienia
Każde uruchomienie konwersji generuje oddzielny plik dziennika zawierający szczegółowe zdarzenia dla tego uruchomienia. Plik nosi nazwę qv2qs_run_<version>_<timestamp>.log i jest zapisany w formacie wartości rozdzielanych tabulatorami (TSV) z kolumną danych JSON.
Domyślna lokalizacja: %LOCALAPPDATA%\QV2QS\logs\
W trybie pojedynczego projektu, QV2QS przenosi plik dziennika do logs/ podfolderu folderu wyjściowego projektu (na przykład, <outputDir>/Sales/logs/) po zainicjowaniu folderu wyjściowego. Plik dziennika jest dołączony do danych wyjściowych konwersji.
W trybie wsadowym dzienniki dla poszczególnych projektów są zapisywane w podfolderze logs/ w każdym folderze wyjściowym projektu.
Format pliku dziennika
Każdy plik dziennika zaczyna się od wiersza nagłówka TSV:
ts_utc level version run_id logger event message data
| Kolumna | Opis |
|---|---|
ts_utc
|
ISO 8601 znacznik czasu w UTC z milisekundową precyzją |
level
|
Poziom logowania: DEBUG, INFO, WARNING, ERROR, lub CRITICAL |
version
|
QV2QS wersja |
run_id
|
Unikatowy identyfikator uruchomienia w formacie YYYYMMDD-HHMMSS-<hex> |
logger
|
Nazwa rejestratora (zazwyczaj qv2qs) |
event
|
Ciąg typu zdarzenia (na przykład, startup, conversion_complete, batch_local_complete) |
message
|
Opis czytelny dla człowieka |
data
|
Obiekt JSON z kontekstowymi parami klucz-wartość |
Kolizje znaczników czasu
Jeśli dwa uruchomienia rozpoczną się w tej samej sekundzie i wygenerują ten sam znacznik czasu, aplikacja QV2QS dołącza _2, _3, lub kolejne numery do nazwy pliku, aby uniknąć nadpisania.
Który dziennik sprawdzić
QV2QS zapisuje do dwóch oddzielnych dzienników na różnych etapach przebiegu. Dziennik systemowy jest zawsze dostępny. Dziennik uruchomienia jest tworzony dopiero po zakończeniu inicjalizacji startowej.
| Scenariusz | Najpierw sprawdź log | Dlaczego |
|---|---|---|
| Proces ulega awarii lub natychmiast się zamyka | Dziennik systemowy | Dziennik przebiegu nie został jeszcze utworzony |
| Generowanie PRJ kończy się niepowodzeniem przed rozpoczęciem konwersji | Dziennik systemowy | Zdarzenia PRJ są logowane, zanim katalog wyjściowy zostanie zainicjowany. |
| Przebieg wsadowy pokazuje nieudane pliki bez szczegółów | Dziennik systemowy | Błędy na poziomie partii (brak QlikView Desktop, niepowodzenia wymagań wstępnych) są rejestrowane w dzienniku systemowym |
| Konwersja generuje nieoczekiwane dane wyjściowe | Log dla każdego uruchomienia w katalogu wyjściowym | Decyzje dotyczące konwersji na poziomie obiektu i ostrzeżenia są rejestrowane w dzienniku dla każdego uruchomienia |
| Wdrożenie w chmurze nie powiodło się | Log dla każdego uruchomienia w katalogu wyjściowym | Wywołania API, błędy uwierzytelniania oraz postęp przesyłania są rejestrowane w dzienniku przebiegu. |
Dziennik systemowy i dziennik przebiegu rejestrują te same zdarzenia w okresie nakładania się, gdy oba są aktywna. Dziennik systemowy rozpoczyna się wraz z uruchomieniem procesu. Dziennik dla pojedynczego uruchomienia rozpoczyna się po przetworzeniu argumentów wiersza poleceń i utworzeniu katalogu wyjściowego. Jeśli awaria wystąpi przed utworzeniem dziennika uruchomienia, tylko dziennik systemowy zawiera informacje diagnostyczne.
Poziomy logowania
Pięć poziomów logowania jest dostępnych, wymienionych od najbardziej do najmniej szczegółowego.
| Poziom | Opis |
|---|---|
DEBUG
|
Szczegółowe informacje diagnostyczne na potrzeby rozwiązywania problemów |
INFO
|
Ogólne komunikaty operacyjne (domyślne) |
WARNING
|
Nieoczekiwane warunki, które nie uniemożliwiają konwersji |
ERROR
|
Awarie, które dotyczą poszczególnych obiektów lub operacji |
CRITICAL
|
Poważne awarie, które zatrzymują wykonanie |
Ustaw poziom logowania za pomocą --logLevel lub QV2QS_LOG_LEVEL zmiennej środowiskowej. Flaga CLI ma pierwszeństwo, gdy obie są ustawione.
Ustaw --logLevel DEBUG, aby przechwycić najbardziej szczegółowe dane wyjściowe. Wpisy na poziomie debugowania obejmują decyzje konwersji, wywołania API chmury, modyfikacje skryptów oraz szczegóły przetwarzania obiektów.
Aby włączyć logowanie debugowania bez modyfikowania wiersza poleceń, ustaw zmienną środowiskową przed uruchomieniem QV2QS:
set QV2QS_LOG_LEVEL=DEBUG
QV2QS.exe --prjPath ./MyApp-prj --outputDir ./output --qvw MyApp.qvw --unbuildOnly
Czyszczenie logów
Pliki dziennika gromadzą się podczas kolejnych uruchomień w trwałym katalogu dziennika. Użyj --cleanLogs, aby usunąć pliki dziennika starsze niż 30 dni na początku uruchomienia. Czyszczenie dotyczy wyłącznie katalogu trwałych dzienników; dzienniki poszczególnych projektów w katalogach wyjściowych pozostają nienaruszone.
Maskowanie sekretów
Wpisy w dzienniku automatycznie maskują wrażliwe wartości. Klucze API, tokeny, hasła i sekrety klienta są maskowane, aby pokazać tylko ostatnie cztery znaki. Argumenty wiersza poleceń zawierające sekrety są również maskowane podczas logowania.
Logowanie silnika QlikView Desktop
Gdy generowanie PRJ jest włączone, QV2QS rejestruje, który silnik QlikView Desktop jest używany dla każdego pliku. Zdarzenie dziennika prj_generate_start rejestruje, czy aktywna jest dołączona przenośna wersja silnika, czy też wersja zainstalowana w systemie, i zawiera wersję pliku dołączonego pliku wykonywalnego, jeśli jest dostępna.
Po nawiązaniu połączenia z QlikView Desktop, zdarzenie prj_qv_ready rejestruje wersję QlikView zgłoszoną przez działający silnik (na przykład, 12.100.20100.0). Gdy używany jest dołączony silnik, pole exe_file_version rejestruje wersję pliku odczytaną z pliku wykonywalnego.
W trybie wsadowym, zdarzenie dziennika prj_batch_prereq rejestruje wybór silnika i dołączoną wersję dla całej partii, zanim jakiekolwiek pliki zostaną przetworzone. Jeśli ani dołączony silnik, ani instalacja systemowa nie są dostępne, błąd jest rejestrowany jako prj_batch_no_qv w dzienniku systemowym.
Ustaw --logLevel DEBUG, aby przechwycić szczegółowe kroki rozwiązywania problemów z silnikiem, w tym ścieżki plików sprawdzane podczas wykrywania silnika.
Wyjście konsoli a logowanie do pliku
Dane wyjściowe konsoli i logowanie do pliku to niezależne systemy.
| Aspekt | Konsola | Dziennik plików |
|---|---|---|
| Format | Sformatowany tekst z opcjonalnymi kolorami i wskaźnikami postępu | Ustrukturyzowany TSV z danymi JSON |
| Kontrolowane przez | --console pretty\|plain\|silent\|ui
|
--logLevel, --logDir |
| Zawartość | Postęp i wyniki widoczne dla użytkownika | Kompletne zdarzenia diagnostyczne |
| Tajne maskowanie | Nie dotyczy | Zastosowano automatycznie |
Dane wyjściowe konsoli nie pojawiają się w plikach dziennika. Flaga --console silent wyłącza wyświetlanie w konsoli, nie wpływając na logowanie do pliku.
Argumenty CLI
| Argument | Opis | Domyślny |
|---|---|---|
--logLevel LEVEL
|
Szczegółowość logów: DEBUG, INFO, WARNING, ERROR, CRITICAL |
INFO
|
--logDir FOLDER
|
Zastąp folder wyjściowy dziennika dla każdego uruchomienia. Ścieżki względne są interpretowane względem bieżącego katalogu roboczego, a nie katalogu wyjściowego. Nie wpływa na trwały dziennik systemowy w %LOCALAPPDATA%. |
%LOCALAPPDATA%\QV2QS\logs\ (pojedynczy projekt) lub <outputDir>/logs/ (wsadowo) |
--cleanLogs
|
Usuń pliki dziennika starsze niż 30 dni przed uruchomieniem | Wył. |