2016-12-06 7 views
0

В настоящее время я столкнулся с NLog.Configuration перезаписанной проблемой, если я нахожу LogManager.Configuration в другой файл конфигурации.Различные экземпляры NLog для разделения конфигурации NLog в разных конфигурационных файлах

Возможно ли создать несколько экземпляров NLog в одном проекте, чтобы предотвратить совместное использование одного LogManager.Configuration?

Что-то вроде:

FruitType класс имеет собственный экземпляр NLog, его NLog.LogManager.Configuration читается по умолчанию nlog.config.

Тогда я хотел бы настроить суб-класс, чтобы быть чем-то следующим образом:

экземпляр класса Apple, имеет собственный NLog экземпляр и класс NLog.LogManager.Configuration Apple, считывается из AppleNLog.config вместо nlog.config ,

то новый фрукт

экземпляра класса Orange имеет собственный NLog экземпляр и экземпляр класса Orange NLog.LogManager.Configuration считывается из OrangeNLog.config вместо nlog.config.

Причина, по которой я хочу это сделать, заключается в том, чтобы отделить правило nlog в другой файл конфигурации, а не по умолчанию nlog.config, чтобы настроить микроконтроллер nlog.

ответ

0

Существует два способа сделать это:

a. Создайте отдельные живые объекты LogFactory и отделите конфигурацию.

например.

public static class MyLogManager 
{ 
    static public NLog.LogFactory Factory1 = new LogFactory(new XmlLoggingConfiguration("nlogconfig1.xml")); 
    static public NLog.LogFactory Factory2 = new LogFactory(new XmlLoggingConfiguration("nlogconfig2.xml")); 
} 

Использование:

var logger1 = MyLogManager.Factory1.GetCurrentClassLogger(); 
//or 
var logger2 = MyLogManager.Factory2.GetCurrentClassLogger(); 

б. Менее разделенные, но все же модульные файлы конфигурации, используйте <include> , например. nlog.config

<nlog> 
    ... 
    <include file="${basedir}/nlog1.config"/>  
    <include file="${basedir}/nlog1.config"/> 

    ... 
</nlog> 

nlog1.config и nlog2.config содержат регулярные <targets> и <rules>. Но имейте в виду потенциальные столкновения имен целей.

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

  • Нет связанных вопросов^_^