3

プロセス中のエラーをログに記録するために、FileAppender で Log4Net を使用しています。プロセスが終了するので、ログ ファイルを電子メールで送信したいのですが、Log4Net がまだファイルをロックしており、ファイルが別のプロセスによって使用されているというメッセージが表示されるため、送信できません。何か案は?

次のような構成を使用しています。

  <appender name="WarnFileAppender" type="log4net.Appender.FileAppender">
    <file value="d:\for-review-log.txt" />

    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %logger - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="INFO" />
      <levelMax value="WARN" />
    </filter>
    <filter type="log4net.Filter.DenyAllFilter" />
    <appendToFile  value="false"></appendToFile>
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  </appender>
4

2 に答える 2

4

ログは何らかのサービスからのものであると想定しているため、サービスが実行されるまでログはロックされます。

送信するファイルを読み取るときに、おそらく共有ロックを使用する必要があります。

または、ファイルをコピーして送信することもできます。

于 2011-05-31T07:42:19.457 に答える
-1

私は同じ問題を抱えています。または、フラッシュが機能せず、SMTPmailAppender を使用しようとすると、それが何らかの形で機能しないようです。しかし、私が独自に作成したクラスを使用して電子メールを送信すると、機能しますが、彼だけが添付ファイル (ログファイル) を追加しません

于 2015-12-24T15:03:10.790 に答える