Журнал консоли Azure NodeJS

У меня есть подписка Visual Studio Enterprise MSDN, поэтому я решил перейти с Heroku на Microsoft Azure, потому что раньше я платил, а теперь нет. Мой тарифный план — D1. Я хотел бы отслеживать строки console.log моего приложения Node JS, развернутого на моей платформе Azure. Мой тарифный план является общим, и я развернул код приложения на BitBucket и связал свой репозиторий с приложением с правильным распределением. Правильно означает, что я вижу зеленый флажок. Я развернул в основной папке приложения файл с именем IISNode.yml, вот его содержимое:

nodeProcessCommandLine: "D:\Program Files (x86)\nodejs\0.12.6\node.exe"
loggingEnabled: true
debuggingEnabled: false
devErrorsEnabled: false
node_env: production

Первую строку я скопировал из файла iisnode.yml, созданного самой Azure. Остальные строки я не совсем уверен в точном значении всех из них, но я решил, что их достаточно. Если я перехожу по URL-адресу: http://MY_APP_NAME.scm.azurewebsites.net/DebugConsole Я могу щелкнуть меню Инструменты->>Поток журналов, но страница продолжает загружаться. Я могу получить доступ к порталу Azure, войти в приложение моего узла, Инструменты -> Журнал приложений и журнал веб-сервера. Журнал приложения показывает это (я думаю, довольно интересное) сообщение:

System.ApplicationException: The trace listener AzureBlobTraceListener is disabled. ---> System.InvalidOperationException: The SAS URL for the cloud storage account is not specified. Use the environment variable 'DIAGNOSTICS_AZUREBLOBCONTAINERSASURL' to define it.
   at Microsoft.WindowsAzure.WebSites.Diagnostics.AzureBlobTraceListener.RefreshConfig()

Я не получил информации об этой «переменной среды» и не могу угадать, какое отношение контейнер BLOB имеет к моему журналу. И: каково правильное значение этой переменной? И если есть, то почему именно этот?

Журнал веб-сервера пуст. Я вижу действия http на мониторе приложения на том же портале, но все еще не регистрирую.

Я что-то упускаю ? Решил установить Visual Studio, может это поможет? Я надеюсь, что у него есть инструменты, которые можно навсегда интегрировать с Azure. Между тем, где журнал консоли моего (чрезвычайно простого) нод-приложения?


person Francesco    schedule 17.01.2016    source источник
comment
Ничто из того, что я пробовал, не решает мою проблему. Я перешел на виртуальную машину Linux с моей работой, работающей на экземпляре терминала, поэтому я могу получить доступ к журналу непосредственно с терминала, просматривая его с помощью удаленного рабочего стола с моего ноутбука с Windows 8.   -  person Francesco    schedule 21.02.2016
comment
В моем приложении я использую модуль log4js, который записывает журналы в датированные файлы. Я могу получить удаленный доступ к этим файлам даже с помощью приложения baretail для Windows [baremetalsoft.com/baretail/]   -  person Francesco    schedule 11.11.2016


Ответы (3)


Вы можете просматривать свои журналы в режиме реального времени, если используете интерфейс azure SCM. Обычно к этому можно получить доступ по следующему URL-адресу

https://{{ name of webapp }}.scm.azurewebsites.net/api/logstream

Весь вывод консоли из вашего приложения перенаправляется сюда.

Вы также можете использовать завиток:

curl -u {{ deploymentCredentialsUsername:deploymentCredentialsPassword }} https://webapp-name.acm.azurewebsites.net/api/logstream

В противном случае вы можете использовать nodejs azure cli. Установите его с помощью

npm install -g azure-cli

Переключиться в ассемблерный режим:

azure config mode asm

Затем вы можете перейти к просмотру журналов с вашего терминала:

azure site log tail {{ webapp name }}
person tensai    schedule 10.11.2016

Вы можете добавить элемент в iisnode.yml с именем logDirectory, установить значение как iisnode например, тогда приложение создаст папку с этим именем в вашем корневом каталоге и будет хранить в ней файлы с захватами stdout и stderr. Вы можете обратиться к https://github.com/tjanczuk/iisnode/blob/master/src/samples/configuration/iisnode.yml#L94 для получения подробной информации об этой конфигурации.

Вы можете хранить журналы в файлах, какие вам нужны, с помощью console.log(), затем приложение создаст html-файл index.html в папке журналов для предоставления журналов. Вы можете посетить журналы по URL-адресу: http://<you_app_name>.azurewebsites.net/<log_file_name>/index.html

Кроме того, вы можете использовать класс консоли Node.js для настройки регистратора, см. https://nodejs.org/api/console.html#console_new_console_stdout_stderr для примера

person Gary Liu    schedule 18.01.2016

Если вы используете веб-интерфейс портала Azure, выходные данные console.log можно найти в разделе Поток журналов раздела Мониторинг.

Обратитесь к скриншоту ниже:

Служба приложений Azure — поток журналов

person Gangula    schedule 26.04.2021