Как использовать log4Net adonetappender для хранения данных в таблице Azure

Мы используем log4Net Adonetappender для хранения данных журнала аудита из нашего приложения с использованием конфигурации в таблицу sqlserver, теперь мы перемещаем наше приложение в Windows Azure, теперь мы хотим использовать тот же adonetappender для хранения данных в хранилище таблицы Windows Azure. базы данных sql azure из-за дороговизны хранилища sql azure. Если мы хотим сохранить в sql azure никаких изменений, наше приложение работает без каких-либо проблем, но мы хотим сохранить эти данные журнала аудита в хранилище таблиц Azure Windows, так как эти данные быстро растут и используется хранилище таблиц Azure. для высокой масштабируемости и меньшей стоимости по сравнению с SQL Azure.

2 ответа

У меня была такая же проблема, и я нашел ответ в этой теме: log4net ADO.NET Appender работает в Dev Fabric, но в Azure не работает.

Короткая версия: adonetappender отлично работает в Azure, но вам нужно убедиться, что в вашей таблице есть кластеризованный индекс. Посмотрите, можете ли вы вручную вставить строку в таблицу журналов в Azure, чтобы подтвердить, что это проблема.

Я не верю, что такой подход будет работать. Таблицы Azure не имеют интерфейса ADO.NET. Если вы хотите писать напрямую из log4net, вам, скорее всего, придется написать собственный адаптер для этого.

Тем не менее, Azure Diagnostics уже пишет в Table Storage. Если вы настроите диагностику Azure в соответствии с указаниями и установите log4net TraceAppender, то сообщения журнала будут отправлены в хранилище таблиц. Это немного окольно, но я на самом деле использую это сам.

Другие вопросы по тегам