Получение журналов сборки с помощью MSBuild

С помощью параметров командной строки с MSBuild можно указать, сколько данных сборки требуется проверить и сохранить данные сборки в одном или нескольких файлах. Можно также указать пользовательское средство ведения журналов для сбора данных сборки. Сведения о параметрах командной строки MSBuild, которые не рассматриваются в этом разделе, см . в справочнике по командной строке.

Примечание.

При сборке проектов с помощью интегрированной среды разработки Visual Studio для поиска и устранения неполадок сборок можно использовать журналы сборок. Дополнительные сведения см. в статье Практическое руководство. Просмотр, сохранение и настройка файлов журнала сборки.

Определение уровня детализации

При сборке проекта с помощью MSBuild без указания уровня детализации в выходном журнале отображаются следующие сведения:

  • ошибки, предупреждения и сообщения с высокой важностью;

  • некоторые события состояния;

  • сводка сборки.

Используя параметр -verbosity (-v), можно контролировать объем данных, отображаемых в журнале выходных данных. Для устранения неполадок используйте уровень детализации detailed (d) или diagnostic (diag), который предоставляет максимум информации.

Сборка может выполняться медленнее, если для параметра -verbosity задано значение detailed, и еще медленнее, если для -verbosity задано значение diagnostic.

msbuild MyProject.proj -t:go -v:diag

Параметры детализации

В следующей таблице показано, как уровень детализации журнала (значения столбцов) влияет на то, какие типы сообщений (строки) записываются в журнал.

Тип сообщений/уровень детализации Тихий NaN Минимальные Обычная Подробно Диагностика
ошибки
Предупреждения
Сообщения с высокой степенью важности
Сообщения со средней степенью важности
Сообщения с низкой степенью важности
Дополнительные сведения о модуле MSBuild

Сохранение журнала сборки в файл

Параметр -fileLogger (fl) можно использовать для сохранения данных сборки в файл. В следующем примере данные сборки сохраняются в файл с именем msbuild.log.

msbuild MyProject.proj -t:go -fileLogger

В следующем примере файлу журнала присвоено имя MyProjectOutput.log, а уровень детализации выходных данных журнала задан как diagnostic. Эти две настройки указываются с помощью параметра -fileLoggerParameters (flp).

msbuild MyProject.proj -t:go -fl -flp:logfile=MyProjectOutput.log;verbosity=diagnostic

Дополнительные сведения см. в справочнике по командной строке.

Сохранение выходных данных журнала в нескольких файлах

В следующем примере весь журнал сохраняется в файл msbuild1.log, только ошибки — в JustErrors.log, только предупреждения — в JustWarnings.log. В примере используется номера файлов для каждого из трех файлов. Номера файлов указываются после параметров -fl и -flp (например, -fl1 и -flp1).

Параметры -fileLoggerParameters (flp) для файлов 2 и 3 указывают имя для каждого файла и компоненты, включаемые в каждый файл. Для файла 1 имя не указано, поэтому используется имя по умолчанию — msbuild1.log.

msbuild MyProject.proj -t:go -fl1 -fl2 -fl3 -flp2:logfile=JustErrors.log;errorsonly -flp3:logfile=JustWarnings.log;warningsonly

Дополнительные сведения см. в справочнике по командной строке.

Сохранение двоичного файла журнала

Чтобы сохранить журнал в сжатом двоичном формате, используйте параметр -binaryLogger (bl). Этот журнал содержит подробное описание процесса сборки и может считываться определенными средствами анализа журнала.

В следующем примере создается двоичный файл журнала с именем binarylogfilename.

-bl:binarylogfilename.binlog

Вы можете использовать средство просмотра структурированных журналов для просмотра двоичных журналов таким образом, что упрощает просмотр того, что происходит.

Дополнительные сведения см. в справочнике по командной строке.

Использование пользовательского средства ведения журнала

Для создания собственного средства ведения журнала можно разработать управляемый тип, реализующий интерфейс ILogger. Пользовательское средство ведения журнала можно использовать, например для отправке ошибок сборки по электронной почте, регистрации их в базе данных или в XML-файл журнала. Дополнительные сведения см. в статье Средства ведения журнала сборки.

В командной строке MSBuild укажите пользовательское средство ведения журнала с помощью параметра -logger. Вы также можете использовать параметр -noconsolelogger, чтобы отключить стандартное средство ведения журнала консоли.