Поделиться через


Создание пользовательского регистратора

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure

Среда выполнения служб Integration Services имеет широкие возможности ведения журнала. С помощью журнала можно отслеживать события, происходящие во время выполнения пакета. Службы Integration Services включают различные поставщики журналов, которые позволяют создавать и хранить журналы в нескольких форматах, таких как XML, текст, база данных или журнал событий Windows. Если ни один из этих регистраторов или предлагаемых ими выходных форматов не соответствует потребностям пользователя, можно создать пользовательский регистратор.

Действия, связанные с созданием пользовательского поставщика журналов, аналогичны действиям по созданию любого другого пользовательского объекта для служб Integration Services:

  • Создайте новый класс, наследующий базовый класс. Для регистратора базовым классом является LogProviderBase.

  • Примените к классу атрибут, определяющий тип объекта. Для регистратора используется атрибут DtsLogProviderAttribute.

  • Переопределите реализацию методов и свойств базового класса. Для регистратора это свойство ConfigString, методы OpenLog, Log и CloseLog.

  • Пользовательские пользовательские интерфейсы для пользовательских поставщиков журналов не реализуются в службах SQL Server Integration Services.

Приступая к работе над пользовательским регистратором

Создание проектов и классов

Так как все управляемые регистраторы являются производными от базового класса LogProviderBase, на первом шаге создания пользовательского регистратора необходимо создать проект библиотеки классов на предпочитаемом языке программирования управляемого кода, а затем создать класс, наследующий от базового класса. В этом производном классе будут переопределены методы и свойства базового класса, реализующие пользовательские функциональные возможности.

Настройте проект таким образом, чтобы создаваемая сборка подписывалась с использованием файла ключа для строгого имени.

Примечание.

Многие поставщики журналов Служб Integration Services имеют пользовательский интерфейс, который реализует IDtsLogProviderUI и заменяет текстовое поле конфигурации в диалоговом окне "Настройка журналов служб SSIS" с отфильтрованным раскрывающимся списком доступных диспетчеров подключений. Однако пользовательские пользовательские интерфейсы для пользовательских поставщиков журналов не реализованы в службах Integration Services.

Применение атрибута DtsLogProvider

Примените к созданному классу атрибут DtsLogProviderAttribute, чтобы определить его в качестве регистратора. Этот атрибут содержит сведения для времени разработки, например, имя и описание регистратора. Свойства DisplayName и Description атрибута соответствуют столбцам "Имя" и "Описание", отображаемым в редакторе "Настройка журналов служб SSIS", который отображается при настройке ведения журнала для пакета в SQL Server Data Tools (SSDT).

Внимание

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

Примечание.

Так как пользовательские пользовательские интерфейсы для пользовательских поставщиков журналов не реализованы в службах Integration Services, указывая значение свойства UITypeName этого DtsLogProviderAttribute свойства не имеет никакого эффекта.

<DtsLogProvider(DisplayName:="MyLogProvider", Description:="A simple log provider.", LogProviderType:="Custom")> _  
Public Class MyLogProvider  
     Inherits LogProviderBase  
    ' TODO: Override the base class methods.  
End Class  
[DtsLogProvider(DisplayName="MyLogProvider", Description="A simple log provider.", LogProviderType="Custom")]  
public class MyLogProvider : LogProviderBase  
{  
    // TODO: Override the base class methods.  
}  

Построение, развертывание и отладка пользовательского регистратора

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

См. также

Создание кода пользовательского регистратора
Разработка пользовательского интерфейса для пользовательского регистратора