Код: Выделить всё
SqlException
Я пробовал использовать обогатители и фильтры, но кажется, что уровень журнала не изменяется эффективно до того, как он достигает приемника, и журналы по-прежнему отображаются с исходным уровнем журнала в Datadog (например, Ошибка вместо Неустранимо).
Что я пробовал:
- Пользовательский обогатитель: я создал обогатитель для обнаружения и изменения SqlException. регистрировать события. Однако уровень журнала в Google Cloud Logging остается неизменным.
Код: Выделить всё
public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory)
{
if (logEvent.Exception is SqlException)
{
logEvent = new LogEvent(logEvent.Timestamp, LogEventLevel.Fatal, logEvent.Exception, logEvent.MessageTemplate,
logEvent.Properties.Select(p => new LogEventProperty(p.Key, p.Value))
);
}
}
- Фильтры: я применил фильтры для поднятия журналов SqlException до уровня Fatal, но это не сработало ожидается с приемником Google Cloud Logging.
- : я также попробовал промежуточное программное обеспечение для глобального перехвата исключений и изменения уровня журнала перед записью в журнал, но в Google Cloud уровень по-прежнему отображается как «Ошибка», а не «Фатальный».
Код: Выделить всё
ExceptionHandlingMiddleware
Подробнее здесь: https://stackoverflow.com/questions/790 ... ilog-sinks