Создание средства ведения журнала переадресации

Обновлен: Ноябрь 2007

Средства ведения журнала переадресации повышают эффективность ведения журналов, позволяя выбрать события для наблюдения при создании проектов в многопроцессорной системе. Используя средства ведения журнала переадресации, можно предотвратить переполнение центрального средства ведения журналов, замедление построения и загромождение журнала нежелательными событиями.

Чтобы создать средство ведения журнала переадресации, можно либо реализовать интерфейс IForwardingLogger, а затем вручную применить его методы, либо использовать элемент ConfigurableForwardingLogger и его предварительно настроенные методы. (Для большинства приложений вполне достаточно последнего метода.)

Регистрация событий и ответ на них

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

Необходимо регистрировать средства ведения журнала переадресации для обработки событий, за которыми нужно наблюдать. Чтобы регистрировать события, средствам ведения журнала необходимо переопределить метод Initialize. Этот метод теперь включает дополнительный параметр, nodecount, который можно задать для числа процессоров в системе. (По умолчанию для него задано значение 1.)

Примерами событий, за которыми можно наблюдать, являются TargetStarted, ProjectStarted и ProjectFinished.

В многопроцессорной системе сообщения о событиях, вероятно, будут приниматься не по порядку. Поэтому необходимо для оценки событий использовать обработчик событий в средстве ведения журнала переадресации и запрограммировать его на определение тех событий, которые следует передавать в перенаправитель для переадресации в центральное средство ведения журнала. Для этого можно использовать класс BuildEventContext, прикрепленный к каждому сообщению, который поможет определить события для переадресации, а затем передать имена событий классу ConfigurableForwardingLogger (или его подклассу). При использовании этого метода не требуется специального кодирования для переадресации событий.

Указание средства ведения журнала переадресации

После того как средство ведения журнала переадресации скомпилировано в построение, необходимо сообщить MSBuild о том, что нужно использовать это средство во время построений. Для этого используйте вместе с MSBuild.exe ключи /FileLogger, /FileLoggerParameters и /DistributedFileLogger. Ключ /FileLogger сообщает MSBuild.exe, что средство ведения журнала подключено напрямую. Ключ /DistributedFileLogger означает, что имеется файл журнала для каждого узла. Чтобы задать параметры средства ведения журнала переадресации, используйте ключ /FileLoggerParameters. Дополнительные сведения об этих и других ключах MSBuild.exe см. в разделе Справочные сведения о командной строке MSBuild.

Средства ведения журнала, поддерживающие многопроцессорную среду

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

См. также

Задачи

Практическое руководство. Написание средства ведения журнала

Основные понятия

Общие сведения о средстве ведении журнала в MSBuild

Ведение журнала в многопроцессорной среде