我的开源 .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 配置可以解决问题,但这会降低性能,所以我更喜欢测试端解决方案,它对生产代码没有影响。