10

Winston を Socket.io のロガーとして使用したいと考えています。私はこの問題を見たことがあります。

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

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

いくつか遊んで、Socket.io ロガーのドキュメントを調べたところ、固定されたパラメーターのセットがないことがわかりました。1 つ、2 つ、および 3 つのパラメーターを持つログ メッセージがあります。もしかしたらもっとあるかもしれませんが、私にはわかりません。

特にこれが外部コンポーネントへのインターフェースである場合、未定義の数のパラメーターを持つことは間違いなく良い習慣ではないと思います。

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

4

3 に答える 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、私にはうまくいかないので、代わりにこのソリューションを投稿しました。

于 2013-11-03T19:55:13.913 に答える
1

socket.io v1.0 以降、logger パラメータは機能しなくなりました。彼らはデバッグに切り替えました

socket.io で Winston をセットアップする方法については、この問題を参照してください。

于 2016-07-25T14:30:32.183 に答える
0

winston インスタンスをロガー オブジェクトとしてプラグインするだけです。

var winston = require('winston');

io.set('logger', winston);
于 2013-08-26T10:03:50.410 に答える