我目前正在从我的工作中创建一个使用NLog实现抽象记录器的公共库。
我创建了面向.NET 4.6.1的.NET Core类库并实现了NLog,但是当我尝试执行我已经创建的单元测试时,我注意到了nlog.config文件未被提取。我也遵循了https://github.com/NLog/NLog.Extensions.Logging所述的说明,但我注意到它只针对Asp.Net Core而不是.NET Core Class Library解决方案。
我的问题是,(鉴于这是我第一次涉足.NET核心)上面的链接上所述的指令也适用于.Net Core类库,或者是否有不同的方法来实现它?
或者我最终不应该使用.Net Core并转而使用更传统的.NET类库实现?
非常感谢!
答案 0 :(得分:2)
我创建了面向.NET 4.6.1的.NET Core类库并实现了NLog,但是当我尝试执行我已经创建的单元测试时,我注意到了nlog.config文件
作为单元测试运行时很难找到配置文件。不同的框架使用不同的位置。以下选项应该起作用
手动查找配置文件位置,并将其传递给NLog。使用
LogManager.Configuration = new XmlLoggingConfiguration(filePath, true);
而不是ConfigureNLog()
或
将XML创建为字符串并将其提供给NLog:而不是ConfigureNLog
,请使用
XElement element = XElement.Parse(configXml);
LogManager.Configuration = new XmlLoggingConfiguration(element.CreateReader(), "nlog.config");
我注意到它只针对Asp.Net Core而不是.NET Core Class Library解决方案。
无论是否使用ASP.NET都可以。 ASP.NET部分will be moved to the NLog.Web package in the future