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

我遇到了同样的问题。Olso 刷新不起作用,当我尝试使用 SMTPmailAppender 时,olso 似乎无法以某种方式工作。但是当我使用自己创建的类发送电子邮件时,它可以工作,只有他不添加附件(日志文件)

于 2015-12-24T15:03:10.790 回答