Вы можете определить политику ведения журнала независимо от политики обработки исключений, они не должны использоваться вместе.
Обработка исключений и ведение журнала много раз используются вместе через цепочку слушателей. Например, вы можете поймать конкретную ошибку в блоке catch и сослаться на вашу политику обработки исключений, которая также может включать в себя действия по регистрации через logCategory.
С другой стороны, чтобы выполнять запись только определенных событий / действий, просто укажите прослушиватель трассировки журнала, на который нет ссылки из политики обработки исключений. Выведите сообщение журнала с помощью оператора Trace.Write.
В любом случае, если вы создаете разные политики, вы можете при необходимости цеплять слушателей для большей гибкости.
Обновление:
В разделе «loggingConfiguration» настройте другой прослушиватель трассировки. Затем вам нужно добавить прослушиватель в разделе categorySources файла web.config. Ниже показано, как войти в два источника: журнал событий и XML-файл.
<categorySources>
<add switchValue="All" name="Database Events">
<listeners>
<add name="Formatted EventLog TraceListener"/>
<add name="XML TraceListener"/>
</listeners>
</add></categorySources>
В разделе «Исключения» убедитесь, что вы подключили свою категорию «События базы данных» к своей политике: (некоторые детали опущены для удобства чтения)
<exceptionHandling>
<exceptionPolicies>
<add name="Data Access Policy">
<exceptionTypes>
<add type="System.OverflowException, mscorlib, ... postHandlingAction="NotifyRethrow" name="OverflowException">
<exceptionHandlers>
<add logCategory="Database Events" eventId="100" ... severity="Critical" name="Logging Handler"/>
<add exceptionMessage="Overflow Exception caught." ... >
</exceptionHandlers>
</add>
</exceptionTypes>
</add>
</exceptionPolicies></exceptionHandling>
Таким образом, конечный результат в этом случае - объединение двух слушателей, на которые ссылалась одна политика. Обратите внимание, что он обрабатывается из типа исключения system.overflow - просто пример того, как вы можете указать разные обработчики для разных исключений.
И, конечно, вы можете просто добавить прослушиватель файла журнала и вызывать его из своего кода, когда вам нужно зарегистрировать событие / действие, не полагаясь на обработку исключений. Дайте мне знать, если вы хотите более подробно.