0

我的开源 .NET 软件使用零问题的 Log4net。

但是当我用 NUnit 测试它时,我在第二次测试中得到了下面的错误。例如,如果我运行一个测试两次,它将第一次成功,第二次失败,无论测试如何:

System.IO.IOException:该进程无法访问文件“C:\Users\win7pro32bit\AppData\Roaming\cmissync\debug_log.txt”,因为它正被另一个进程使用。

日志文件是通过对 log4net.Config.XmlConfigurator.Configure(path) 的静态调用创建的

我想我应该以某种方式关闭 TearDown 中的日志文件,但我看不到任何 log4net“关闭”方法。

添加<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />log4net 配置可以解决问题,但这会降低性能,所以我更喜欢测试端解决方案,它对生产代码没有影响。

4

1 回答 1

0

正如 adrianbanks 和 Cole W 在评论中所建议的那样,我真的不需要登录到文件。

所以这解决了这个问题:

    [SetUp]
    public void Init()
    {
        log4net.Config.BasicConfigurator.Configure(new TraceAppender());
    }
于 2013-10-10T02:47:22.477 回答