具有NLog目标的.NET核心类库.Net 4.6.1

时间:2016-12-20 22:29:14

标签: .net-core nlog class-library

我目前正在从我的工作中创建一个使用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类库实现?

非常感谢!

1 个答案:

答案 0 :(得分:2)

  

我创建了面向.NET 4.6.1的.NET Core类库并实现了NLog,但是当我尝试执行我已经创建的单元测试时,我注意到了nlog.config文件

作为单元测试运行时很难找到配置文件。不同的框架使用不同的位置。以下选项应该起作用

  1. 手动查找配置文件位置,并将其传递给NLog。使用

    LogManager.Configuration = new XmlLoggingConfiguration(filePath, true);
    

    而不是ConfigureNLog()

  2. 使用the API
  3. 创建配置
  4. 将XML创建为字符串并将其提供给NLog:而不是ConfigureNLog,请使用

    XElement element = XElement.Parse(configXml);
    LogManager.Configuration = new XmlLoggingConfiguration(element.CreateReader(), "nlog.config");
    
  5.   

    我注意到它只针对Asp.Net Core而不是.NET Core Class Library解决方案。

    无论是否使用ASP.NET都可以。 ASP.NET部分will be moved to the NLog.Web package in the future