質問

Log4NetとAdoNetAppenderを使用して、単純なシステムトレイアプリケーションからSQL Server 2005データベースにメッセージを記録しています。

このアプリケーションは複数のマシンで実行され、メッセージの発信元を知る必要があるため、ログメッセージとともにマシン名を記録したい。

しかし、アペンダーで使用しているlog4net.Layout.PatternLayoutを介してこの情報を公開する方法は見つかりません。

この方法でlog4net経由でマシン名を記録する方法はありますか?

役に立ちましたか?

解決

事前に設定されたプロパティ log4net:HostName を使用できます。例:

<conversionPattern value="%property{log4net:HostName}" />

この方法では、MDCにデータを入力する必要はありません。

他のヒント

次のようなパラメーターを作成できます:

<parameter>
  <parameterName value="@machine" />
  <dbType value="String" />
  <size value="255" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%X{machine}" />
  </layout>
</parameter>

次に、ログに書き込む前に次の行を追加します。 MDC.Set(&quot; machine&quot ;, Environment.MachineName);

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top