2016-10-31 4 views
6

Я развернул приложение-узел в качестве службы приложения azure. И включил azure Application Logging (blob) с уровнем журнала «Verbose» и связал учетную запись хранилища типа blob. Но мои node.js console.log и console.error не отображаются в блобе. Я все еще продолжаю получать файлы stdout и stderr в регистрации файловой системы.Регистрация приложений Azure (blob) для node.js, развернутых как служба приложений

Мой iisnode.yml файл имеет следующий контент-

nodeProcessCommandLine: "D:\Program Files (x86)\nodejs\6.3.0\node.exe" 
 
nodeProcessCountPerApplication: 2 
 
loggingEnabled: true 
 
logDirectory: iisnode 
 
maxLogFiles: 100 
 
devErrorsEnabled: true 
 
configOverrides: "iisnode.yml" 
 
asyncCompletionThreadCount: 20 
 
flushResponse: true

+0

Очень огорчает, что это не поддерживается. Имел ту же проблему, и теперь я уже второй догадываюсь, является ли nodejs гражданином первого класса в лазурном стеке. Запись приложений в файловую систему автоматически отключается через 12 часов, поэтому вам необходимо использовать адаптер, такой как winston, который кажется контрпроизводительным. – sjdirect

ответ

2

Я пытаюсь сделать то же самое прямо сейчас and came across this:

для Node.js веб-страницам, чтобы записывать журналы приложений, - это записать на консоль с помощью console.log ('message') и console.error ('message'), который идет в Information/Error . В настоящее время единственной поддерживаемой целью для файлов журнала для node.js является файловая система.

Похоже, вы не можете использовать хранилище blob для журналов приложений в Azure Web Apps. Однако существуют адаптеры хранения Azure blob для популярных регистраторов nodejs, таких как winston: winston-azure-blob-transport

+2

winston-azure-blob-transport хорошо работает. Мое текущее решение состоит в том, чтобы переопределить console.log/error, вызывая оригинальный метод, а также регистрируясь в хранилище blob с помощью winston. – pyre