Azure NodeJS控制台日志

时间:2016-01-17 19:01:05

标签: node.js azure console.log

我有一个Visual Studio Enterprise MSDN订阅,因此我决定从Heroku迁移到Microsoft Azure,因为我曾经付费:现在我不知道。我的服务计划是D1。 我希望我可以跟踪部署在Azure平台上的Node JS应用程序的console.log字符串。我的服务计划是名为的共享服务计划 我在BitBucket上部署了应用程序代码,并将我的repo链接到应用程序并进行了正确的解析。正确意味着我看到绿色检查标志。我在应用程序的主文件夹上部署了一个名为IISNode.yml的文件,这里是内容:

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

我从Azure自己创建的iisnode.yml复制的第一行。其他方面我不太确定所有这些方面的确切含义,但我认为它们已经足够了。如果我访问网址: http://MY_APP_NAME.scm.azurewebsites.net/DebugConsole ,我可以点击工具 - > 日志流菜单,但页面仍然处于加载状态。 我可以访问Azure门户,输入我的节点应用程序,工具 - >应用程序日志和Web服务器日志。应用程序日志显示了这个(我认为非常有趣)消息:

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容器与我的日志应用程序有什么关系。而且:这个变量的正确值是多少?如果有,为什么那个正确?

Web Servier日志为空。我可以在同一门户网站上看到应用程序监视器上的http活动,但仍然没有日志。

我错过了什么吗?我决定安装Visual Studio,也许这会有帮助吗?我希望这有很好的工具可以与Azure集成。同时,我的(极简单)节点应用程序的控制台日志在哪里?

3 个答案:

答案 0 :(得分:6)

如果使用azure SCM界面,则可以实时查看日志。通常可以通过以下网址访问

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

您的应用程序的所有控制台输出都会重定向到此处。

您也可以使用curl:

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

否则你可以使用nodejs azure cli。用

安装
npm install -g azure-cli

切换到asm模式:

azure config mode asm

然后您可以继续查看终端的日志:

azure site log tail {{ webapp name }}

答案 1 :(得分:2)

您可以在名为iisnode.yml的{​​{1}}中添加项目,例如将值设置为logDirectory,然后应用程序将在根目录中创建此名称的文件夹并存储文件用stdout和stderr捕获它。您可以参考https://github.com/tjanczuk/iisnode/blob/master/src/samples/configuration/iisnode.yml#L94了解此配置的详细信息。

您可以通过iisnode将日志存储在文件中,然后应用程序将在日志文件夹中创建一个html文件console.log()以提供日志。您可以通过以下网址访问日志:index.html

此外,您可以利用Node.js控制台类来自定义记录器,有关示例,请参阅https://nodejs.org/api/console.html#console_new_console_stdout_stderr

答案 2 :(得分:0)

如果您使用的是 Azure Portal Web 界面,则可以在 Monitoring 下的 Log Stream 部分下找到 console.log 输出。

参考下面的截图:

Azure App Service - Log Stream