Azure NodeJS 控制台日志

Azure NodeJS console log

我有一个 Visual Studio Enterprise MSDN 订阅,所以我决定从 Heroku 转移到 Microsoft Azure,因为我过去要付费:现在我不用了。我的服务计划是 D1。 我希望我可以跟踪部署在我的 Azure 平台上的 Node JS 应用程序的 console.log 字符串。我的服务计划是名为 我在 BitBucket 上部署了应用程序代码,并将我的存储库链接到具有正确分布的应用程序。正确意味着我看到了绿色复选标记。我在应用程序的主文件夹中部署了一个名为 IISNode.yml 的文件,内容如下:

nodeProcessCommandLine: "D:\Program Files (x86)\nodejs[=10=].12.6\node.exe"
loggingEnabled: true
debuggingEnabled: false
devErrorsEnabled: false
node_env: production

我从 Azure 自己创建的 iisnode.yml 复制的第一行。其他几行我不太确定它们的确切含义,但我认为它们就足够了。如果我访问 url: http://MY_APP_NAME.scm.azurewebsites.net/DebugConsole 我可以点击 Tools->Log Stream 菜单,但页面仍在加载中。 我可以访问 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()

我还没有得到关于这个 "environment variable" 的信息,我无法猜测 BLOB 容器与我的日志应用程序有什么关系。并且:这个变量的正确值是多少?如果有的话,为什么那个是正确的?

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

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

您可以在 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 控制台 class 自定义记录器,请参阅 https://nodejs.org/api/console.html#console_new_console_stdout_stderr 示例

如果您使用 azure SCM 界面,您可以实时查看您的日志。这通常可以在以下 url

上访问
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 }}

如果您使用的是 Azure 门户 Web 界面,您可以在 Monitoring[=20] 下的 Log Stream 部分找到 console.log 输出=].

参考下面的截图: