我已经使用nuget将NLog添加到项目中并添加了NLog.config.我正在运行调试器并得到一个NullReferenceException
由于事实LogManager.Configuration
是null:
LogManager.Configuration.AddTarget("sentinel", sentinalTarget);
这行代码在静态构造函数中运行.
NLog.config位于web.config旁边的项目根目录中.
这发生在visual studio调试器中
NLog.config属性"复制到输出目录"="始终复制"
我更新了NLog.config throwExceptions ="true",并且在运行时LogManager.ThrowExceptions
是假的,所以我怀疑配置有问题
尝试删除名称为:viewer,DbWin及其相关规则的目标
NLog.config内容:
更新
我发现了源.仅在运行单元测试时才会出现此问题.运行完整的应用程序(Web应用程序)问题不存在.我将NLog.config文件复制到单元测试主目录.运行单元测试时仍然存在问题.
将NLog.config复制到Test projects顶级文件夹
添加DeploymentItemAttribute
到测试类(更多信息)
像这样:
[TestClass] [DeploymentItem("ProjectName\\NLog.config")] public class GeneralTests
或者,您可以以编程方式加载配置:
LogManager.Configuration = new XmlLoggingConfiguration(@"c:\path\to\NLog.config")