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

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.