2011-12-14 7 views
2

私はNode.jsとAzureを使いこなしています。私はソケット接続をサポートする簡単なワーカーロールを作成しました。私は自分のアプリケーションをデバッグしようとしていますが、本質的にソケットサーバーなので、実際にはわかりません。さらに悪いことに、私はこのワーカーの役割の中でコンソールに書き込む方法やデータを記録する方法を考え出していません。誰かがAzureのNode.jsをデバッグする良い方法を見つけ出すことを願っています。高度なヘルプに感謝します。AzureでのNode.jsのデバッグ

+0

ログはhook.ioサーバーにとって完璧なタスクのように聞こえる。ログメッセージを読みたいときは、hook.ioサーバを起動し、ロギングフックをアタッチ/デタッチします。 – Raynos

答えて

0

エミュレータで実行している場合は、エミュレータのGUIでログを見ることができます(エミュレータアイコンを右クリックしてください)。 Azureで実行している場合は、BLOBストレージにログすることをお勧めします。リモートデスクトップを有効にして、Windows Azure VMにリモートからアクセスすることもできます。

+0

これはデバッグプロセスに役立ちます。 – grouma

+0

VMにアクセスすると、ノード "console/cmd/powershell"はどのように表示されますか?私はノードがプロセス内で実行されているのを見ることができますが、オープン・ウィンドウはありません。 – Blowsie

0

私が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のようなテーリングプログラムを使用して、記録されたリアルタイムアクティビティを観察します。

関連する問題