45

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

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

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

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

4

2 に答える 2

88

事前に入力されたプロパティを使用できますlog4net:HostName。次に例を示します。

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

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

于 2008-10-02T16:40:31.913 に答える
11

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

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

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

于 2008-10-02T15:23:04.640 に答える