настраиваемое ведение журнала БД с использованием корпоративной библиотеки 4.1 - PullRequest
0 голосов
/ 15 апреля 2010

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

До сих пор я получил от Google то, что мне нужно создать прослушиватель, наследующий от CustomTraceListener, и дать мою реализацию WriteMessage.

Что мне нужно знать, так это как подключить свои таблицы и SP к блоку журналирования библиотеки Enterprise.

1 Ответ

3 голосов
/ 15 апреля 2010

Если ваша хранимая процедура будет работать со следующим интерфейсом:

CREATE PROCEDURE [dbo].[WriteLog]
(
    @EventID int, 
    @Priority int, 
    @Severity nvarchar(32), 
    @Title nvarchar(256), 
    @Timestamp datetime,
    @MachineName nvarchar(32), 
    @AppDomainName nvarchar(512),
    @ProcessID nvarchar(256),
    @ProcessName nvarchar(512),
    @ThreadName nvarchar(512),
    @Win32ThreadId nvarchar(128),
    @Message nvarchar(1500),
    @FormattedMessage ntext,
    @LogId int OUTPUT
)


Затем вы можете использовать слушатель трассировки базы данных из коробки. Просто укажите вашу хранимую процедуру через конфигурацию.

Если нет, то вам придется заняться кодированием. Вы можете создать пользовательский прослушиватель трассировки , но самый простой способ - скопировать FormattedDatabaseTraceListener и изменить его. (Основная реализация является частной, поэтому расширение не поможет вам в этом.) Они уже сделали большую часть работы. Единственным изменением будет изменение ExecuteWriteLogStoredProcedure для выполнения того, что вам нужно для вызова вашей хранимой процедуры. Вы также хотели бы создать класс TraceListenerData на основе FormattedDatabaseTraceListenerData, добавив в него нужные вам элементы конфигурации.

Установите исходный код Enterprise Library и взгляните на класс FormattedDatabaseTraceListener.

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