2015-12-11 3 views
0

Я использую ASP NET 5 с MVC 6 и NLog. В NLog wiki я увидел, что существует соглашение относительно файлов конфигурации, чтобы они автоматически загружались и обрабатывались, однако я могу/не знаю, как это сделать на ASP NET 5.Загрузка конфигурации NLog из файла по запросу

Я увидел учебное пособие, объясняющее, как это сделать некоторые основные записи в файл here. То, как они это делают, хотя кажется мне менее оптимальным для меня, поскольку они должны создать файл или добавить некоторые конфигурации в существующую (что хорошо для меня), а затем создать class для загрузки конфигураций, а затем после этого вам необходимо вручную создать целевые объекты на основе конфигурации и class, которые вы используете (а это не так).

Возможно, я получаю неправильные настройки NLog, но для того, что я прочитал, конфигурация должна загружаться автоматически, теперь я не ожидаю, что это будет под ASP NET 5 с they say support is practically none at the time being, но я надеялся, что смогу загрузить конфигурационные файлы каким-то образом запускаются в моем приложении и инициализируют инфраструктуру 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 использует по умолчанию для инициализации и инициализировать его оттуда?

ответ

0

После открытия issue на GitHub по другой причине this comment дал мне idea.There это XmlLoggingConfiguration класса, который принимает filePath в файл конфигурации в конструкторе и разбирает его в действительный LoggingConfiguration в этом случае XmlLoggingConfiguration. Итак, теперь мне нужно только:

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

и все, что я искал.

Смежные вопросы