的Node.js的console.log不使用2012年8月Azure的SDK

问题描述:

我下面的Windows Azure的Node.js的站点上的教程工作没有被创造?的Node.js的console.log不使用2012年8月Azure的SDK

在我server.js文件,我发出的console.log陈述,但没有被写入日志文件。这是为什么?八月SDK中发生了什么变化,以防止我的日志被写入?

或者我需要什么,以使使用者编写的console.log语句?

感谢

+0

哪些具体教程,你的工作吗?这是运行本地还是与Azure一起运行?通过Web站点,您将看到一个server.js.logs文件夹和Web角色,您应该可以在Web角色的iisnode子目录中看到您的文件。 – 2012-08-14 05:56:28

+0

Windows Azure Node.js 2012年8月SDK改变了我认为Jim的一些事情。当我浏览webrole文件夹时,我看到一个iisnode文件夹,在issnode文件夹内是日志文件。不知道什么微软要做什么,因为他们没有给出任何关于SDK的新文档以及发生了什么变化等等。所以我猜测他们已经取消了server.js.logs文件并且使用issnode解决方案。 – 2012-08-14 06:48:12

+0

它在azure模拟器中运行本地。 – 2012-08-14 06:54:53

你必须了解的Node.js是的console.log主要用于客户端的日志记录。我刚刚测试过,当您在运行于Windows Azure的node.js应用程序中使用console.log时,stdout日志文件无法创建,因此您将无法获取任何日志。

如果你想记录添加到它是一个网络服务器上运行,你应该使用服务器端的日志记录代码的代码,我发现连接库是用于此目的的最强大,最有用: https://github.com/senchalabs/Connect

正如你提示你的代码是在计算模拟器中运行意味着你正在创建的Windows Azure云服务,你应该按照你一步下面文章一步,你会得到它的工作:

https://www.windowsazure.com/en-us/develop/nodejs/tutorials/getting-started/

被告知,仍然执行console.log不会t在Node.js代码在Compute Emulator中运行时显示任何内容。

+0

关于console.log,你不太正确。在node.js中,它将写入服务器上的stdout,这是从命令提示符运行时的控制台窗口。它与客户端日志无关。 – 2012-08-14 17:12:37

+0

你说得对,我想说的是,在一些网络服务器标准输出无法创建,这就是为什么使用它可能不是一个好的选择。当我在Azure Cloud Service中测试代码时,我没有看到标准输出是由Azure网站创建的,但是其他日志发布到特定的* .js.log仍然不是特定于console.log。 – AvkashChauhan 2012-08-14 17:23:57

https://github.com/tjanczuk/iisnode/issues/168,从https://github.com/tjanczuk/iisnode/wiki/iisnode-releases(在v0.1.20注)挂。

最新的Windows Azure SDK的Node.js必须拿起iisnode的一个新版本,而iisnode改变它会将日志文件。

是的,现在iisnode把在〜/ iisnode目录中的日志文件,并写入的索引,您可以浏览日志文件。它还包含了一个新的Node.js脚本,interceptor.js它允许你写日志文件任何位置