2010-01-13 3 views
2

Я в настоящее время работает с Microsoft SSIS и SQL Server 2008, и я хотел бы написать журналы в файл с помощью:Написание пользовательского поставщика журнала в SSIS

  • Конкретная модель журнала: отформатированный Дата - Log Level: Войти сообщение
  • конкретных уровни журнала
  • коды ошибок, которые связаны с сообщения об ошибках в файле конфигурация

Я блуждающие в Интернете в поисках решения моей проблемы, и я думал, о написании моего собственного поставщика журналов для SSIS.

Кто-нибудь знает, как это сделать или если это просто огромная трата времени, даже пытаясь это сделать?

Спасибо за вашу помощь

ответ

3

Как далеко, протоколирование SSIS идет:

Мы используем протоколирование предоставленный SSIS в базе данных, которая содержит мета-данные обо всех наших пакетов SSIS, который был разработан нашим экспертом SSIS. Это позволяет нам легко иметь корпоративный стандарт для того, какие действия регистрируются и использует работу Microsoft для создания системы ведения журнала. Однако данные журнала относительно трудно читать, поэтому наш архитектор написал синтаксический анализатор на C#, чтобы вытащить данные в таблицу со структурой, как нам нужно ее видеть. Так что да, я могу сказать, что это было достойное время. Я могу легко прочитать ошибки и шаги, которые были обработаны для любого импорта. У меня есть задача электронной почты, которая выполняется с ошибкой, которая включает в себя запрос таблицы для этого запуска, так что сотрудник службы поддержки, который должен исследовать сбой, может просто запустить код в письме, чтобы узнать, что произошло. Это значительно сократило время исследования и исправления ошибок.

Чтобы добавить дополнительную информацию в ответ на комментарий Назима: Это довольно сложная база данных, но она включает в себя такие вещи, как тип импорта/экспорта, имя файла, местоположение файла, который нужно подобрать, клиент это связанные с частотой, столбцами в файле и типом данных, которые он должен хранить (используется для проверки правильности формата файла, поскольку клиенты, как известно, изменяют их без предупреждения). Мы используем эту информацию как переменные в самих пакетах. Затем, когда пакет запускается, мы записываем детали этого прогона в таблицу подробных данных, которая включает в себя анализируемые данные и экземпляр (который заполняется в первой задаче каждого пакета для каждого прогона и связан с пакетом). Затем последняя задача в пакете записывает конечное время и успешный статус (или если он содержит ошибки, у нас есть задача, которая завершает экземпляр с неудачным состоянием). Трудно описать, поскольку у нас более 20 таблиц в базе данных, и конкретный дизайн является собственностью. Если вы хотите самостоятельно разработать, просто подумайте обо всех данных, которые могут быть полезны в качестве переменных, все данные, которые могут быть полезны для устранения неполадок, и все данные, которые могут потребоваться для запуска отчетов об управлении процессами импорта и экспорта ,

+0

Hi, Спасибо за ваш ответ. Не могли бы вы привести пример метаданных о ваших пакетах SSIS? – Nazim

0

Я немного заглянул в это, и считаю, что он, вероятно, лучше придерживается встроенных возможностей ведения журнала SSIS.

Если вы хотите настроить его специально, просмотрели ли вы возможную регистрацию в таблице SQL, а затем, возможно, запросили эту таблицу таким образом, чтобы выводить журналы в требуемом формате?

2

Как упоминалось выше, у SSIS есть очень хорошие встроенные возможности ведения журнала: basic how to on msdn. У моего последнего клиента они хотели регистрировать определенную информацию так же, как и вы, и для этого мы создали пользовательские файлы журналов, используя задачи сценария в soome обработчиков событий пакета.Некоторые из более используемых обработчиков событий - OnPreExecute, OnPostExecute и OnError. Задачи сценария позволяют получить доступ к библиотекам .NET, которые позволяют вам создавать файл журнала и добавлять любую информацию, которую вы сочтете необходимой для нее. Существует много хорошей информации, хранящейся в переменных пакета, которые могут использоваться в вашей задаче сценария, такой как время выполнения, имя пользователя, время начала и т. Д.

Смежные вопросы