корпоративная библиотека 3.1 — как добавить новое свойство конфигурации в прослушиватель ‘добавить тег?

#properties #enterprise-library #listener #new-operator

#свойства #enterprise-библиотека #слушатель #new-operator

Вопрос:

Я хочу фильтровать прослушиватель трассировки на основе серьезности, такой как предупреждение, ошибка и т.д.

Означает, что если написать ниже прослушивателя в файле конфигурации и добавить новое свойство «severityFilter», то этот прослушиватель будет перехватывать только предупреждения и журналы выше.

Итак, как создать это новое свойство под названием «severityFilter» с помощью кода?

   <add databaseInstanceName="DB1" writeLogStoredProcName="WriteLog"
               addCategoryStoredProcName="AddCategory" formatter="Text Formatter"
               listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Database.Configuration.FormattedDatabaseTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
               traceOutputOptions="None" type="Microsoft.Practices.EnterpriseLibrary.Logging.Database.FormattedDatabaseTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
           name="Database Trace Listener"  severityFilter="Warning" />
  

Спасибо
Митеш Патель

Ответ №1:

Вы не можете добавлять произвольные свойства конфигурации к существующим слушателям. Свойства прослушивателя определены в классе данных конфигурации (в вашем примере FormattedDatabaseTraceListenerData ). Если вы хотите добавить новые свойства конфигурации, вам нужно будет создать пользовательский прослушиватель.

Категории имеют SourceLevel фильтр, который позволяет вам глобально фильтровать по степени серьезности. Но если вы хотите сделать это на основе TraceListener, вам следует перейти на более новую версию Enterprise Library — эта функция поддерживается.

Другим вариантом является пользовательский фильтр, но который действует на LogEntry so, также не зависит от TraceListener.