log4net包装器不记录(在MSTest UTs期间)

Efr*_*ain 2 .net c# log4net mstest visual-studio

我有一个log4net的包装类来记录一组dll库中的多个类和程序集.(这可能是设计不佳,但是......不要问)代码基本上是这样的:

public static class Logger
{
    private static ILog log;

    static Logger()
    {
        log = LogManager.GetLogger("abcd");
        XmlConfigurator.Configure(new FileInfo("LoggerConfig.log4net"));
        log.Info("=== NEW SESSION ===");
    }

    public static void Log(string message)
    {
        log.Debug(message);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在..如果静态构造函数是一个简单可执行文件的静态主程序,这很好用(我很快就制作了一个控制台应用程序来测试它).但在这里却没有.由于我处理独立程序集而不是可执行程序,因此我可以轻松测试记录程序的唯一方法是通过MSTest.这可能是导致此问题的原因.我不是100%肯定,如果它可能根本找不到配置文件.它在编译时被复制并且与包含记录器类的程序集位于同一文件夹中,所以我认为应该可行.

bleh ..卡住了三个小时.:T有什么建议吗?

Pet*_*ter 5

我的通灵调试器说你的LoggerConfig.log4net不在正确的目录中.它未部署到您的测试目录,并且在运行测试时未找到.这就是没有日志输出的原因.在测试目录中部署文件,您将获得日志输出.

编辑:更准确地说,您需要将其添加为测试 - >编辑测试设置 - >>部署下的部署文件(如此处所述:如何获得"复制到输出目录"以使用单元测试?)