2

NLogとロギング全般を使い始めたばかりですが、おそらくそれを悪用しすぎていることに気づきます。コードのすべての行をログに記録しています。そのほとんどは情報メッセージですが、try catchシナリオでは、または何かがnullの場合、エラーをログに記録します。ログに記録するのに最適なものは何ですか?

これを2つのプロジェクトがあるWPFソリューションに使用しています(1つはUIで、もう1つはクラスライブラリです)。

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <!-- make sure to set 'Copy To Output Directory' option for this file -->
  <!-- go to http://nlog-project.org/wiki/Configuration_file for more information -->

  <targets>
        <target name="errorLog" xsi:type="File" fileName="${basedir}/error.txt" />
      <target name="infoLog" xsi:type="File" fileName="${basedir}/info.txt" />
    </targets>

    <rules>
        <logger name="*" level="Error" writeTo="errorLog" />
      <logger name="*" level="Info" writeTo="infoLog" />
    </rules>
</nlog>
4

1 に答える 1

3

NLog は、ログ レベルの概念をサポートしています。

エラーよりも低いレベルを使用して、プログラムが実行する理由を追跡するのに役立つ可能性があるものはすべてログに記録することをお勧めします。アプリケーションをデプロイするときに、NLog.config で目的のログ レベルを Error に設定します。

http://nlog-project.org/wiki/Log_Levels

ユーザーが予期しない問題に遭遇した場合、ログ レベルを Info などに変更して、何が起きているかについてより多くの情報を得ることができます。

そうは言っても、コードのすべての行はほぼ確実にやり過ぎです。その極端に行くと、ログでコードが乱雑になります。

アプリケーションで問題が発生する可能性のある場所に集中してください。

私の個人的な好みは次のとおりです。

  • トレース レベルを使用して、コード フロー (メソッドの開始、メソッドの終了) を示します。
  • Info レベルを使用して、重要な計算の進行状況や手順を示します
  • エラーレベルを使用して、アプリケーションが回復できる予期しないことを示します
  • Fatal レベルを使用して、何か非常に悪いことが発生し、アプリがシャットダウンしようとしていることを示します。
于 2012-10-03T17:20:54.837 に答える