Преобразование уровня log4net по конфигурации
У нас есть устаревшая база данных журналов, которая регистрирует два типа событий.
- ошибка
- Событие
Мы подключили log4net к приложению и используем AdoNetAppender для входа в эту унаследованную базу данных. Хранимая процедура, используемая для регистрации вхождений, принимает хранимую процедуру с одним параметром, называемым @TypeID. В настоящее время мы настроили этот параметр следующим образом:
<parameter>
<parameterName value="@TypeID" />
<dbType value="Int32" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="2" />
</layout>
</parameter>
При этом все события регистрируются как события (тип 2), независимо от уровня события (ошибка или иное). Как я могу изменить конфигурацию, чтобы все вхождения в ОШИБКУ log4net или выше установили для параметра @TypeID значение 1?
Спросил другой способ:
Можно ли использовать условную логику в значении translationPattern?
1 ответ
Вы можете написать PatternLayoutConverter
это делает это Я разместил образец, который можно легко изменить, чтобы преобразовать уровни журналов в соответствии с вашими требованиями.