Журналы приложений службы приложений Azure для постоянной доступности
У нас есть 3 отдельных развертывания:
- Служба приложений Azure (приложение веб-API) без веб-заданий
- Пустой веб-сайт Azure с 1 веб-заданием
- Веб-сайт Azure Dummy с 1 веб-заданием
Мы будем обновлять их время от времени; публикация в Staging Deployment-Slot, а затем замена промежуточного слота на Production, как только мы освоимся с тем, что было развернуто. Иногда мы делаем это для всех 3 одновременно, а иногда только для 1 за один раз.
Приложения используют NLog
чтобы регистрировать интересные вещи (в DEBUG
, INFO
, так далее.). Мы настроили xsi:type="File"
цели, которые пишут на локальный диск (который, как я понимаю, поддерживается блобами и используется всеми экземплярами). В настоящее время мы пишем в место под %HOME%\site\wwwroot
,
Проблема нашего подхода в том, что файлы журнала привязаны к конкретному слоту, в котором мы работаем.
Поэтому, когда мы входим в систему Production в течение месяца, развертываем в промежуточный слот, затем меняем его на Production ... мы стираем ценность месяца NLog
журналы приложений. На самом деле он переключается на Staging, и нам нужно было сделать некоторые операции копирования / перемещения вручную, чтобы объединить его с новым журналом производственных приложений.
Я почти уверен, что мы упускаем что-то простое, и мы делаем это неправильно или нелегко.
Каким образом мы можем "войти" в одно место, назначенное "Production", и сделать так, чтобы данные журнала содержали только в одном месте все данные, зарегистрированные нашим приложением в нескольких развертываниях в Production .
1 ответ
Как сказал Суват Ч. Если вы переключите ваше веб-приложение из рабочей среды в промежуточную, файл журнала также перейдет в промежуточную. Если вы хотите сохранить файл журнала в рабочем состоянии, я предлагаю вам сохранить информацию журнала в хранилище Azure. Попробуйте https://www.nuget.org/packages/AzureTableStorageNLogTarget/, чтобы сохранить информацию журнала в хранилище таблицы Azure. Вот ресурс Github, который демонстрирует, как его использовать. Надеюсь, что это может дать вам советы.