Log4Net - 文件处理锁定

时间:2011-05-31 07:38:37

标签: log4net log4net-configuration

我们正在使用带有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>

2 个答案:

答案 0 :(得分:4)

我假设日志来自某种服务,因此日志将被锁定,直到服务运行。

您可能希望在读取文件时使用共享锁进行发送。

或者您可以复制文件并发送副本。

答案 1 :(得分:0)

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