0

2 種類の発生をログに記録する従来のログ データベースがあります。

  1. エラー
  2. イベント

アプリケーションに log4net を後付けし、AdoNetAppender を使用してこのレガシー データベースにログを記録しています。発生をログに記録するために使用されるストアド プロシージャは、@TypeID という 1 つのパラメーターを持つストアド プロシージャを受け取ります。現在、そのパラメーターは次のように構成されています。

  <parameter>
    <parameterName value="@TypeID" />
    <dbType value="Int32" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="2" />
    </layout>
  </parameter>

これにより、イベント レベル (エラーまたはその他) に関係なく、すべての発生がイベント (タイプ 2) としてログに記録されます。log4net ERROR 以上のすべての発生で @TypeID パラメータが 1 に設定されるように構成を変更するにはどうすればよいですか?

別の方法で尋ねた:

conversionPattern の値に条件付きロジックを使用することは可能ですか?

4

1 に答える 1

2

これを行う を書くことができますPatternLayoutConverter。要件に応じてログ レベルを変換するように簡単に変更できるサンプルを投稿しました。

于 2011-05-31T08:18:43.763 に答える