我们正在使用带有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>
答案 0 :(得分:4)
我假设日志来自某种服务,因此日志将被锁定,直到服务运行。
您可能希望在读取文件时使用共享锁进行发送。
或者您可以复制文件并发送副本。
答案 1 :(得分:0)
我遇到了同样的问题。 Olso刷新不起作用,当我尝试使用SMTPmailAppender时,olso似乎无法以某种方式工作。但是当我使用我自己创建的类发送电子邮件时,只有他不添加附件(日志文件)