5

本番コードでエラーが発生したときにログファイルを電子メールで送信するようにSMPTAppenderを設定しています。ローカルのテストマシンなど、電子メールを送信したくないマシンがいくつかあります。

propertyfilterで環境変数COMPUTERNAMEを使用しようとしましたが、機能しませんでした。

<filter type="log4net.Filter.PropertyFilter">
  <Key value="COMPUTERNAME" />
  <StringToMatch value="myComputerName" />
  <Accept value="false" />
</filter>

私は次のようなファイルアペンダーでComputerNameを使用しました:

<file value="${HOMEDRIVE}\\loggingDirectory\\AppLogFile.${COMPUTERNAME}.log" />

これも機能しませんでした(また、私はそれを期待していませんでした):

<filter type="log4net.Filter.PropertyFilter">
  <Key value="${COMPUTERNAME}" />
  <StringToMatch value="myComputerName" />
  <Accept value="false" />
</filter>

プロパティフィルターで環境変数を使用する方法はありますか?他の提案を歓迎します。

4

1 に答える 1

5

間違ったキー値を使用しています。LoggingEvent.Properties コレクションには、「log4net:HostName」署名を持つ HostName プロパティが取り込まれます。

フィルターは次のようになります。

<filter type="log4net.Filter.PropertyFilter">
    <Key value="log4net:HostName" />
    <StringToMatch value="computerToExclude" />
    <AcceptOnMatch value="false" />
</filter>

AcceptではなくAcceptOnMatchを使用することにも注意してください。

于 2009-04-16T09:23:51.507 に答える