【问题标题】:Debugging Node.js with Azure使用 Azure 调试 Node.js
【发布时间】:2013-04-05 19:02:58
【问题描述】:

我一直在玩 Node.js 和 Azure。我创建了一个支持套接字连接的简单工作者角色。我正在尝试调试我的应用程序,但不知道如何调试,因为它本质上是一个套接字服务器。更糟糕的是,我还没有找到在这个工作角色中写入控制台或记录数据的方法。我希望有人找到了在 Azure 中调试 Node.js 的好方法。感谢您的帮助。

【问题讨论】:

  • 日志记录听起来像是 hook.io 服务器的完美任务。当你想读取日志消息时,你启动一个 hook.io 服务器并附加/分离一个日志钩子。

标签: debugging node.js azure


【解决方案1】:

如果您在模拟器中运行,您可以在模拟器 GUI 中查看您的日志(右键单击模拟器图标)。如果你在 Azure 中运行,最好的办法是登录到 Blob 存储。您还可以启用远程桌面以远程访问 Windows Azure VM。

【讨论】:

  • 太棒了。这应该有助于调试过程。
  • 一旦你访问了虚拟机,你如何查看节点“console / cmd / powershell”?我可以看到节点在进程中运行,但没有打开窗口。
【解决方案2】:

当我最初也在 Nodejs 下作为套接字服务器进行开发时,我直接从 WebStorm 运行和调试 node.exe,因此仅使用 console.log() 或 util.inspect() 并查看 WebStorm 上发生的活动是可以接受的控制台窗口。

当然,当我们部署到 Windows Azure 时,这将无济于事,因为即使我们远程桌面,似乎也无法在服务器中看到已启动的 node.exe 进程的运行时控制台窗口。尝试后几个日志库,唯一真正可以保存到文件的库是 log4js。

我有一个向应用程序的其余部分公开的记录器对象,因此他们不必了解实际的实现库。

var log4js = require('log4js');

// The logger helper utilises log4js under the covers.
// Serves as a wrapper from the rest of the application.
log4js.replaceConsole();
log4js.configure({
    appenders: [
        { type: 'console' },
        { type: 'file', filename: 'log/socket.log', category: 'socket' }
    ]
});
var logger = log4js.getLogger('socket');

所以信息会被记录到部署服务器的 E: 或 F:\approot\log\socket.log 文件中。

然后使用baretail 之类的跟踪程序来观察他们被记录时的实时活动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2013-03-15
    • 2012-01-01
    • 2014-06-13
    • 2020-04-29
    • 1970-01-01
    • 2018-04-25
    相关资源
    最近更新 更多