Log.INFO対Log.DEBUG [終了]


95

私は大規模な商用プログラムを開発しており、Log.INFOとLog.DEBUGを使用してどのような情報を記録したいかを混乱させ続けています。各タイプのログメッセージに含まれる内容に関する標準や経験則はありますか?

回答:


132

私は通常、次のように使用しようとします。

  • デバッグ:問題をデバッグしようとするときに、開発者にとって興味深い情報。
  • 情報:特定のエラーのコンテキストを理解しようとするサポートスタッフにとって興味深い情報
  • WARN to FATAL:損傷のレベルに応じた問題とエラー。

INFOは常に本番環境で有効にできますが、パフォーマンスに影響がありますか?
pinkpanther

1
状況によって異なります。(その答えが好きです)考慮に入れる必要のある要素は次のとおりです。1.情報ログ行の量2.ログ設定(ログ行はどこに行き着くのですか?)3。関連システム。
nfechner

1
また、ノイズが多いほど、問題の特定が難しくなります。plumberjack.blogspot.be/2010/09/…から:> Unixの哲学と同様に、ソフトウェアは、必要な場合、または要求された場合を除いて、過度に冗長であってはなりません。(なぜ私はこれを引用することができないのですか?)
axd

38

デバッグ:プログラムの状態に関するきめの細かいステートメントで、通常はデバッグに使用されます。

情報:プログラムのイベントまたは行動追跡を表す、プログラムの状態に関する情報ステートメント。

警告:プログラム内の潜在的に有害なイベントまたは状態を説明するステートメント。

エラー:アプリケーションの致命的でないエラーを説明するステートメント。このレベルは、処理された例外のロギングによく使用されます。

致命的:最も深刻なエラー状態を表すステートメントで、プログラムが強制終了される可能性があります。

見つかったhttp://www.beefycode.com/post/Log4Net-Tutorial-pt-1-Getting-Started.aspx


ユーザー入力によって引き起こされたエラーは警告またはエラーとして扱われるべきですか?(IEのユーザー名またはパスワードが正しくない)
Stevoisiak 2018

@Stevoisiak彼の答えに基づいて、それは情報として扱われるべきだと思います。
aderchox

9

また、すべてのことを覚えておいてくださいinfo()error()と、debug()ログの呼び出しは、任意のアプリケーション内の内部文書を提供。


良い点だと思います。たとえばlog.info("parse the widget text; ignore contents of 'foo'")、それはログステートメントでもありますが、コードを読むときに役立つドキュメントとして役立ちます。
シチュー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.