我的开源.NET软件使用Log4net没有问题。
但是当我用NUnit测试它时,我在第二次测试中得到了以下错误。例如,如果我运行两次测试,它将在第一次成功并且第二次失败,无论测试如何:
System.IO.IOException:进程无法访问文件'C:\ Users \ win7pro32bit \ AppData \ Roaming \ cmissync \ debug_log.txt',因为它正由另一个进程使用。
日志文件由a static call to log4net.Config.XmlConfigurator.Configure(path)
创建我想我应该以某种方式关闭TearDown中的日志文件,但我看不到任何log4net“关闭”方法。
将<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
添加到the log4net configuration可以解决问题,但是这个degrades performance,所以我更喜欢测试端解决方案,这对生产代码没有影响。
答案 0 :(得分:0)
正如adrianbanks和Cole W在评论中所建议的那样,我真的不需要登录文件。
所以这解决了这个问题:
[SetUp]
public void Init()
{
log4net.Config.BasicConfigurator.Configure(new TraceAppender());
}