我有一个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集成。同时,我的(极简单)节点应用程序的控制台日志在哪里?
答案 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)