Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Переадресация средств ведения журнала повышает эффективность ведения журнала, позволяя выбирать события, которые необходимо отслеживать при создании проектов в многопроцессорной системе. Включив пересылку журналов, вы можете предотвратить нежелательные события, чтобы центральный журнал не был перегружен, избежать замедления процесса сборки и загрязнения вашего журнала.
Чтобы создать средство ведения журнала пересылки, можно реализовать IForwardingLogger интерфейс, а затем реализовать методы вручную или использовать ConfigurableForwardingLogger класс и его предварительно настроенные методы. (Последнее будет достаточно для большинства приложений.)
Регистрация событий и реагирование на них
Средство ведения журнала пересылки собирает сведения о событиях сборки по мере их получения дополнительным обработчиком сборки, который представляет собой рабочий процесс, созданный основным процессом сборки во время сборки в многопроцессорной системе. Затем логгер переадресации выбирает события для передачи в центральный логгер в соответствии с вашими инструкциями.
Для обработки событий, которые требуется отслеживать, необходимо зарегистрировать средства ведения журнала пересылки. Чтобы зарегистрировать события, логгеры должны переопределить Initialize метод. Этот метод теперь включает необязательный параметр, nodecountкоторый можно задать для количества процессоров в системе. (По умолчанию значение равно 1.)
Примеры событий, которые можно отслеживать: TargetStarted, ProjectStarted и ProjectFinished.
В многопроцессорной среде сообщения о событиях, скорее всего, будут получены в неправильном порядке. Поэтому необходимо оценить события с помощью обработчика событий в журнале пересылки и настроить его для определения, какие события передавать в средство перенаправления для отправки в центральный журнал. Для этого можно использовать BuildEventContext класс, присоединенный к каждому сообщению, для выявления событий, которые нужно перенаправлять, а затем передавать имена событий ConfigurableForwardingLogger в класс (или подкласс). При использовании этого метода для пересылки событий не требуется другое кодирование.
Указание средства ведения журнала пересылки
После компиляции средства ведения журнала пересылки в сборку необходимо сообщить MSBuild, что его нужно использовать во время сборки. Для этого используйте переключатели -FileLogger, -FileLoggerParameters, и -DistributedFileLogger вместе с MSBuild.exe. Переключатель -FileLogger сообщает MSBuild.exe, что логгер подключен напрямую. Параметр -DistributedFileLogger означает, что на каждый узел создается файл журнала. Чтобы задать параметры в средстве ведения журнала пересылки, используйте переключатель -FileLoggerParameters. Дополнительные сведения об этих и других параметрахMSBuild.exe см. в справочнике по командной строке.
Логгеры с поддержкой нескольких процессоров
При сборке проекта в многопроцессорной системе сообщения сборки от каждого процессора автоматически не пересекаются в единой последовательности. Вместо этого необходимо установить приоритет группировки сообщений с помощью класса, присоединенного BuildEventContext к каждому сообщению. Дополнительные сведения о многопроцессорной сборке см. в разделе "Ведение журнала в многопроцессорной среде".