Uzyskiwanie dzienników kompilacji za pomocą programu MSBuild
Korzystając z opcji wiersza polecenia w programie MSBuild, możesz określić, ile danych kompilacji chcesz przejrzeć i czy chcesz zapisać dane kompilacji w jednym lub kilku plikach. Można również określić niestandardowy rejestrator do zbierania danych kompilacji. Aby uzyskać informacje o opcjach wiersza polecenia programu MSBuild, które nie zostały omówione w tym temacie, zobacz Dokumentacja wiersza polecenia.
Uwaga
Jeśli kompilujesz projekty przy użyciu środowiska IDE programu Visual Studio, możesz rozwiązać problemy z tymi kompilacjami, przeglądając dzienniki kompilacji. Aby uzyskać więcej informacji, zobacz Jak wyświetlać, zapisywać i konfigurować pliki dziennika kompilacji.
Ustawianie poziomu szczegółów
Podczas kompilowania projektu przy użyciu programu MSBuild bez określania poziomu szczegółów w dzienniku wyjściowym są wyświetlane następujące informacje:
Błędy, ostrzeżenia i komunikaty sklasyfikowane jako bardzo ważne.
Niektóre zdarzenia stanu.
Podsumowanie kompilacji.
Za pomocą przełącznika -verbosity (-v) można kontrolować ilość danych wyświetlanych w dzienniku wyjściowym. Aby rozwiązać problemy, użyj poziomu detailed
szczegółowości (d
) lub diagnostic
(diag
), który zawiera najwięcej informacji.
Proces kompilacji może być wolniejszy po ustawieniu parametru -verbosity na detailed
i jeszcze wolniej, gdy ustawisz wartość -verbosity na diagnostic
.
msbuild MyProject.proj -t:go -v:diag
Ustawienia szczegółowości
W poniższej tabeli przedstawiono sposób rejestrowania szczegółowości (wartości kolumn) na typy komunikatów (wartości wierszy).
Typ komunikatu / Czasownik | Quiet | Minimalny | Normalna | Szczegółowe | Diagnostyka |
---|---|---|---|---|---|
Błędy | ✅ | ✅ | ✅ | ✅ | ✅ |
Ostrzeżenia | ✅ | ✅ | ✅ | ✅ | ✅ |
Komunikaty o wysokiej ważności | ✅ | ✅ | ✅ | ✅ | |
Komunikaty o normalnym znaczeniu | ✅ | ✅ | ✅ | ||
Komunikaty o niskiej ważności | ✅ | ✅ | |||
Dodatkowe informacje dotyczące aparatu MSBuild | ✅ |
Zapisywanie dziennika kompilacji w pliku
Możesz użyć przełącznika -fileLogger (fl), aby zapisać dane kompilacji w pliku. W poniższym przykładzie dane kompilacji są zapisywane w pliku o nazwie msbuild.log.
msbuild MyProject.proj -t:go -fileLogger
W poniższym przykładzie plik dziennika ma nazwę MyProjectOutput.log, a szczegółowość danych wyjściowych dziennika ma wartość diagnostic
. Te dwa ustawienia należy określić za pomocą przełącznika -fileLoggerParameters (flp
).
msbuild MyProject.proj -t:go -fl -flp:logfile=MyProjectOutput.log;verbosity=diagnostic
Aby uzyskać więcej informacji, zobacz Dokumentacja wiersza polecenia.
Zapisywanie danych wyjściowych dziennika w wielu plikach
Poniższy przykład zapisuje cały dziennik w msbuild1.log, tylko błędy, które mają JustErrors.log, i tylko ostrzeżenia do JustWarnings.log. W przykładzie użyto numerów plików dla każdego z trzech plików. Numery plików są określane tuż po przełącznikach -fl i -flp (na przykład -fl1
i -flp1
).
Przełącznik -fileLoggerParameters (flp
) dla plików 2 i 3 określa, co nazwać każdy plik i co należy uwzględnić w każdym pliku. Nie określono nazwy pliku 1, więc jest używana domyślna nazwa msbuild1.log .
msbuild MyProject.proj -t:go -fl1 -fl2 -fl3 -flp2:logfile=JustErrors.log;errorsonly -flp3:logfile=JustWarnings.log;warningsonly
Jeśli używasz powłoki, która interpretuje średniki (na przykład powłokę bash), umieść pojedyncze lub podwójne cudzysłów wokół dowolnej opcji, która ma średniki, aby zapobiec interpretowaniu go jako separatora poleceń. Aby uzyskać więcej informacji, zobacz Dokumentacja wiersza polecenia.
Zapisywanie dziennika binarnego
Dziennik można zapisać w skompresowanym formacie binarnym przy użyciu przełącznika -binaryLogger (bl). Ten dziennik zawiera szczegółowy opis procesu kompilacji i może być odczytywany przez niektóre narzędzia do analizy dzienników.
W poniższym przykładzie plik dziennika binarnego jest tworzony z nazwą binarylogfilename.
-bl:binarylogfilename.binlog
Podgląd dzienników ze strukturą umożliwia wyświetlanie dzienników binarnych w sposób, który znacznie ułatwia sprawdzenie, co się dzieje.
Aby uzyskać więcej informacji, zobacz Dokumentacja wiersza polecenia.
Używanie niestandardowego rejestratora
Możesz napisać własny rejestrator, tworząc typ zarządzany, który implementuje ILogger interfejs. Możesz użyć niestandardowego rejestratora, na przykład do wysyłania błędów kompilacji w wiadomości e-mail, rejestrowania ich w bazie danych lub rejestrowania ich w pliku XML. Aby uzyskać więcej informacji, zobacz Build loggers (Rejestratory kompilacji).
W wierszu polecenia MSBuild należy określić niestandardowy rejestrator przy użyciu przełącznika -logger . Możesz również użyć przełącznika -noconsolelogger , aby wyłączyć domyślny rejestrator konsoli.