Vk-io: カスタムロガーをアタッチする方法が見つかりません

作成日 2020年12月12日  ·  8コメント  ·  ソース: negezor/vk-io

あなたは何をした?

ドキュメントでセクションを見つけてみてください)

何が起こると思いましたか?

不在です

実際の結果はどうでしたか?

私はそれを見つけたいです))

vk-io

最も参考になるコメント

すべてのエラーがPromiseスローされるため、ライブラリは原則としてエラーをログに記録しません(そうでない場合、アンチパターンが発生します)。 ミドルウェアの例外について話す場合、それらはすべて1つのルートミドルウェアでキャッチできます。

// Custom catch all the errors
vk.updates.use(async (context, next) => {
    try {
        await next();
    } catch (error) {
        logger.error('An error has occurred', { error });
    }
});

グローバルミドルウェアエラー処理の詳細については、こちら

全てのコメント8件

例えば?

Eeeem .....たとえば、これは何ですか? たとえば、可能な実装の場合、コンソールオブジェクトのようにllggerインターフェイスを宣言します。 つまり、通常のメソッドであるdebug()info()、varn()、error()、およびクラスコンストラクターのopshenパラメーターは、このようなインターフェイスを持つオブジェクトを受け入れます。

それはどこで役に立ちますか:たとえば、私たちがエルクを目指したように、プロジェクトのロギングシステムが一般的にある場合に非常に役立ちます。 このようなプロジェクトでは、VKメッセージも一般的なロギングシステムに適合する必要があります。

すべてのエラーがPromiseスローされるため、ライブラリは原則としてエラーをログに記録しません(そうでない場合、アンチパターンが発生します)。 ミドルウェアの例外について話す場合、それらはすべて1つのルートミドルウェアでキャッチできます。

// Custom catch all the errors
vk.updates.use(async (context, next) => {
    try {
        await next();
    } catch (error) {
        logger.error('An error has occurred', { error });
    }
});

グローバルミドルウェアエラー処理の詳細については、こちら

そして、誰がエラーロギングについて話していましたか? 現在のチケットは、すべてのイベントをログに記録するカスタムロガーについて公開されています。 たとえば、呼び出されたメソッドの名前、メソッドパラメータ。 ライブラリの内部作業の仕組みを理解して、ライブラリ内で発生する呼び出しを確認し、ログでこれらの呼び出しを確認し、1秒、1分、1時間、1か月あたりの呼び出し数に関する統計を収集し、結果を分析することが重要です。これはすべて、許可されるリクエスト数の制限、最適化に関連しています。 実行によるエラー処理ではありません。 それはログについてです。

@isinkin @negezorところで、なぜチケットが閉じたのですか?

これはライブラリの責任ではありません。すべてのメソッドを独自のハンドラーでラップし、必要に応じてログに記録できます。 ライブラリには、デバッグモジュールがDEBUG=vk-io:*示すモジュールの呼び出されたメソッドを見つける機能があります。

@negezorリクエストを明確にしたいと思いますが、誤解されている可能性があります。 vk-io内にログを記録するための独自のライブラリを作成することはお勧めしません。 それがそのように理解されたならば、それはごみです。 これは図書館の責任ではないことに同意します。 既存のライブラリ(私の場合はhttps://www.npmjs.com/package/bunyan)のみをvk-io接続する方法を尋ねました。 つまり、 как создатьではなく、 как подключитьです。

外部ロガーを接続するためのメカニズムがvk-ioの責任の領域にあることは明らかだと思います。
たとえば、TypeORMでどのように編成されているかを添付します。 そのようなメカニズムをコピーするだけでも非常にクールです。 https://typeorm.io/#/logging

ログが受け入れられるラッパーでパブリックメソッド呼び出しをラップできるという約束。 ただし、このメソッドでは、ログからmessages.sendへの10回の呼び出しが実際に1回のexecuteに置き換えられたことを判別できません。 したがって、ロギングツールとしては役に立ちません。

ロガーが内蔵されているというメッセージDEBUG=vk-io:*コメントの仕方すらわかりません。 これは、敬意を払ってロガーではありません。 これがロガーの場合、そのようなログをELKに転送する方法を教えてください。 その後、私は同意します。

兄弟、どこにいるの?

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

Pacmard picture Pacmard  ·  3コメント

ogmishanya picture ogmishanya  ·  4コメント

SOS
helix-team picture helix-team  ·  4コメント

AndreiSoroka picture AndreiSoroka  ·  6コメント

T1MOXA picture T1MOXA  ·  22コメント