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有什么建议吗?
我的通灵调试器说你的LoggerConfig.log4net不在正确的目录中.它未部署到您的测试目录,并且在运行测试时未找到.这就是没有日志输出的原因.在测试目录中部署文件,您将获得日志输出.
编辑:更准确地说,您需要将其添加为测试 - >编辑测试设置 - >>部署下的部署文件(如此处所述:如何获得"复制到输出目录"以使用单元测试?)