私はタスクを同時に実行するコードを書いており、各タスクは同時に実行できる多くのサブタスクにつながる可能性があります。ロギングのベストプラクティス(同時実行でのデバッグ)
私はGoでこれを行うのに十分なことを学んだし、強烈なテストでうまくいった。私たちは、実行されている作業に関する情報をログファイルに記録する習慣を持っています。しかし、生成されたログ(> 50MB)は、タスクが順番に実行される場合にのみ有効です。同時実行の場合、ログのコンテキスト(ログを書き込んだタスク)は維持されません。
私はこの問題に関連するトピックを検索しましたが、関連情報は見つかりませんでした。実行フローのデバッグに役立つログを作成するためのベストプラクティスとデザインについて学びたい。私はタスクとサブタスクツリーを介して実行の流れを知る必要があります。
私はGoで作業し、同時実行タスクを実行するためにgoroutinesを使用しました。言語がid
を各ゴルーチンに関連して公開していないので、私たちはログ内のゴルーチンのid
さえも関連付けることができませんでした(id
を入手できます)。
私はタスクt1にサブタスクst1、st2、st3を持っているとします。 t1はログをt1として書き込みます。私はこれをやります st1、st2、st3が起動しました。 st1はログをt1として書き込みますst1:これを実行しています st3はログをt1として書き込みますst3:これを実行します st2はログをt1として書き込みますst2:これを実行しています したがって、私はすべてのタスクログの書き込み中に使用されます(親階層のタスク情報が取得され、ログのテキストに追加されます)。 このアプローチは良いですか? – Spartan