web-dev-qa-db-ja.com

log4netを介してマシン名をどのようにログに記録しますか?

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

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

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

この方法でlog4netを介してマシン名をログに記録する方法はありますか?

43
Stephen Tolton

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

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

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

85
Georg

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

_<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);

11
Thad