2017-02-09 5 views
0

Учитывая развертывание Azure AppService, выполняется приложение WebAPI, которое масштабируется до 6 экземпляров.Azure AppService: доступ к журналам со всех масштабируемых машин

Приложение WebAPI записывает диагностические журналы с использованием NLog и File appender. Есть ли способ проверить эти файлы журналов через Azure Portal или Kudu?

Отмечу, что Kudu может получить доступ к файловой системе в песочнице ... но когда приложение развернуто до 6 экземпляров, кажется, что песочница просматривает только 1-й экземпляр.

Есть ли способ получить доступ к файлам журналов в любом из 5 других экземпляров?

+0

На самом деле App Service использует общее хранилище для файлов, так что все экземпляры должны увидеть по существу то же хранилище. Вы уверены, что другие экземпляры пишут файлы, которые вы не видите? – juunas

+0

Я знаю, что код испускает файлы журналов в папку «logs» в папке bin. Я вижу контент в нем - и он растет по мере того, как мы делаем запросы API - хорошая корреляция. Вы говорите, что «один «Файл, который я читаю (например, загруженный из Kudu/DebugConsole), на самом деле является файлом, который содержит унифицированный контент из всех 6 экземпляров? –

ответ

1

Есть ли способ получить доступ к файлам журналов в любом из 5 других экземпляров?

Путь к файлам журналов используется для всех экземпляров. Для получения дополнительной информации см. Azure WebApp SandBox и Azure WebApp File Access.

Каждое приложение Azure Web имеет домашний каталог, хранящийся/поддерживаемый Azure Storage. Этот сетевой ресурс - это то, где приложения хранят свой контент. Домашний каталог является общим для всех экземпляров, поэтому все экземпляры видят один и тот же каталог.

+0

Это правильно. Что также здорово, если я добавлю NLog' logger', System.Diagnostics.Trace' (например, '') Я могу видеть вывод журнала NLog в поток журнала. Я вижу сообщения журнала со всех машин в одном журнале поток. –

1

Мы отошли от NLog по этой причине. Azure имеет встроенную поддержку для входа в хранилище Azure с использованием собственного. Net Trace, у вас будут все журналы, хранящиеся на диске для каждого экземпляра.

Если вы действительно хотите NLog остаться, вы можете настроить имена журналов включить $ {имя_компьютера} или ProcessId