2013-08-09 7 views
10

WinstonをSocket.ioのロガーとして使用したいと考えています。それが言うところ私はthis issueを見てきました:Winston経由でSocket.ioを記録するにはどうすればよいですか?

var io = require('socket.io').listen(8080); 
io.set('logger', { debug: <log function>, info: … , error: .., warn: .. }) 

残念ながら、log functionがどのように見えるか説明されていません。

Socket.io logger documentationには、固定パラメータセットがないと言われています.1つ、2つ、3つのパラメータのログメッセージがあります。多分、私には分かりません。

これは、特にこれが外部コンポーネントへのインターフェイスである場合は、パラメータの数が不定であることをお勧めしません。

とにかく...誰でもこれについていくつかの経験がありますか?誰が注意すべきことを指摘できますか?

答えて

8

これは、同じコールにロガーを設定することで、私のためにボーナスとして

var io = require('socket.io').listen(server, { 
    logger: { 
     debug: winston.debug, 
     info: winston.info, 
     error: winston.error, 
     warn: winston.warn 
    } 
}); 

を正常に動作するようです.listen()とすると、Socket.IOからのすべてのログ出力をキャッチします。そのオブジェクトの代わりにwinstonを渡すことができるはずですが、それは私のために働いていないので、代わりにこのソリューションを投稿しました。

+0

express.io(express/socket.ioハイブリッド)でこれと同じことをやりますか? – silkcom

+0

@silkcomわかりません。私は一度も使ったことがありません。 – Brad

0

あなたは、単にロガーオブジェクトとしてウィンストンインスタンスをプラグインすることができます

var winston = require('winston'); 

io.set('logger', winston); 
+0

debug

あなたはこの問題を参照することに切り替えたが、私は間違いなくそれが今働いて得ることができません。私はSocket.IOまたはWinstonにこの機能を壊した更新があったと思いますか? – Brad

関連する問題