我们使用Log4Net和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>
嗨Alex,日志来自控制台应用程序进程,这将锁定文件。我已经在使用Appender的FileAppender.MinimalLock设置。复制文件可能是一个选项... – 2011-05-31 07:48:15
@Steve Ward - 您是否可以访问发送日志的应用程序的代码?如果是这样,您可能需要对其进行更改。它不应该计算该文件现在不被使用,因此它可以使用共享锁读取文件或执行文件复制。 – 2011-05-31 07:51:41
是的,复制文件似乎工作。谢谢... – 2011-05-31 08:06:40