私は、操作に関するログレコードをどこに書き込むかについて考えています。ここには2つの異なるスタイルがあります。最初の1つは、操作の前にログを書き込みます。前操作の前または後にログを書き込みますか?
:
log.info("Perform operation XXX")
operation()
そして、ここでは異なるスタイルで、操作後にログを書き込みます。
後:前-スタイルで
operation()
log.info("Operation XXX is done.")
、ログレコードが今やって何が起こっているかと言います。このスタイルのプロは、何か問題が起こったときに、開発者が今何をしているのかを知っているので、簡単にそれを検出できるということです。しかし、誤った操作があった場合、たとえば、関数呼び出しがブロックされて返ってこないなど、操作が正しく終了しているかどうかわからない場合は、ログ記録を読み取ってもそれを知ることはできません。アフタースタイルでは、操作が完了したと確信しています。もちろん
、私たちは一緒に
両方をこれら二つのスタイルを混在させることができます:
log.info("Perform operation XXX")
operation()
log.info("Operation XXX is done.")
しかし、私はそれはちょっと冗長であると感じ、それは二重のログ記録を行います。だから、ここに私の質問です - 良い伐採スタイルは何ですか?あなたはどう思いますか?
ありがとうございました。
私はこれをしないことを強く勧めます。 'operation()'にログを追加したいのですが?また、 'print'は新しい行を追加します。私はそれがちょうど擬似コードだと知っていますが、これはロギングライブラリのいずれかで実装するのは簡単ではありません。 – Falmarri
これは本当です。あなたは確かにネストの問題にぶつかることがあります。 'print'に関しては、AIUIは最後にカンマをつけて改行を抑制します。 – Jander