Постоянные журналы приложений для приложения NodeJS в службе приложений Azure - PullRequest
0 голосов
/ 04 января 2019

У меня есть приложение nodejs, которое является ничем иным, как BOT, созданным с использованием платформы Microsoft Bot Builder.Я создал службу приложений Azure для размещения этого приложения.Я хотел бы найти способ сохранить все журналы приложений и журналов веб-сервера (если это возможно) в каком-либо постоянном хранилище.Так же, как и в собственных веб-приложениях, где мы можем просматривать журналы на сервере приложений и устранять проблемы приложений.

После некоторого исследования я нашел официальный документ от Microsoft по этому вопросу, но похоже, что он имеет следующие ограничения.

  • Мы не можем использовать опцию хранения файловСлужба приложений, так как она работает только 12 часов, поэтому журналы не будут сохраняться вечно.
  • В настоящее время в хранилище BLOB-объектов можно записывать только журналы приложений .NET.Журналы приложений Java, PHP, Node.js, Python могут храниться только в файловой системе (без изменения кода для записи журналов во внешнее хранилище).

Я хотел бы проверить, пытался ли кто-нибудь попробоватьдругой подход для приложения nodejs.Если да, то, пожалуйста, поделитесь.

Спасибо.

1 Ответ

0 голосов
/ 04 января 2019

Поэтому я бы ответил, что это не совсем проблема, специфичная для ботов ... то есть у вас возникла бы та же проблема, если бы вы писали ванильный Web API и хотели бы иметь постоянные журналы.Вам нужно выбрать технологию ведения журнала, которая позволит вам регистрироваться в более постоянном хранилище, чем просто файловая система.

Поскольку вы используете Node, возможно, вы захотите использовать каркас журналирования Winston , в котором есть абстракция для подключения различных транспортов. Затем вы должны подключить Передача BLOB-объектов хранилища Azure при работе в рабочей среде, которая обеспечит запись ваших журналов в хранилище Azure.

Тем не менее вам придется собирать их из хранилища Azure и собирать их самостоятельно, что можетбыть болезненнымЕсли вы действительно хотите использовать систему распределенной трассировки в реальном времени, вы можете вместо этого использовать Application Insights.Для этого есть даже транспорт Winston , если вы хотите отвлечься от непосредственного использования ИИ и просто использовать его в качестве другого потока журнала.

...