按需从文件加载NLog配置

时间:2015-12-11 17:00:30

标签: asp.net asp.net-core nlog

我正在使用带有MVC 6和NLog的ASP NET 5。在NLog wiki我看到有关于配置文件的约定,以便它们被自动加载和处理,但是我可以/不知道如何在ASP NET 5上这样做。

我看到了一个教程,解释了如何对文件here进行基本的日志记录。他们这样做的方式对我来说似乎不太理想,因为他们必须创建一个文件或将一些配置附加到现有文件(这对我来说很好),然后创建一个class来加载配置到然后,您必须根据配置和您正在使用的class手动创建目标(不是)。

也许我的NLog配置错误,但是我读到的配置应该是自动加载的,现在我不希望自从they say support is practically none at the time being开始在ASP NET 5下这样,但是我希望我仍然可以在我的应用程序启动时以某种方式加载配置文件,并直接从这些文件初始化NLog基础结构。像这样的东西

var nlogConfigSection = Configuration.Get<NLogProvidedClass>("configSection");
var nlogConfig = NLogConfig.FromProvidedClass(nlogConfigSection);
loggerFactory.AddNlog(new LogFactory(nlogConfig)

var nLogConfig = NLogConfiguration.LoadFromFile("NLog.config")
loggerFactory.AddNlog(new LogFactory(nlogConfig)

所以我的问题是:有没有办法将配置文件/部分加载到类/结构/ NLog默认用于初始化的任何内容并从那里初始化它?

1 个答案:

答案 0 :(得分:0)

在github上打开issue后出于不同的原因this comment给了我一个想法。有一个XmlLoggingConfiguration类将filePath带到了配置文件中构造函数并将其解析为有效LoggingConfiguration,在本例中为XmlLoggingConfiguration。所以现在我要做的就是:

var config = new XmlLoggingConfiguration(configFile)
loggerFactory.AddNlog(new LogFactory(config)

那就是它,正是我所寻找的。