Как передать файл конфигурации log4net через код в Castle.Facilities.Logging.LoggingFacility.UseLog4Net?

Я использую следующий код из документации Castle Windsor. Я не могу понять, как передать мой configFile установщик контейнера загрузчика, который устанавливает этот установщик.

 public void Install(IWindsorContainer container, IConfigurationStore store)
    {
        container.AddFacility<LoggingFacility>(f => f.UseLog4Net("NameOfConfigFile"));
    }

person OutOFTouch    schedule 03.11.2012    source источник


Ответы (2)


По умолчанию я считаю, что он будет использовать logging.config в корне проекта. Вам все еще нужно использовать что-то более индивидуальное, чем это?

person hammett    schedule 04.11.2012
comment
Метод UseLog4Net имеет перегрузку, которая принимает строковое имя configFile для использования, я спрашиваю, как передать его? потому что клиенты diff, использующие мою библиотеку, будут иметь файлы конфигурации diff log4net. - person OutOFTouch; 04.11.2012
comment
@ rarouš Что значит проблема развертывания? Просьба уточнить. - person OutOFTouch; 05.11.2012
comment
Я пытаюсь понять, как передать имя / путь файла конфигурации Log4Net в Castle.Facilities.Logging.LoggingFacility.UseLog4Net во время установки контейнера. Ответ Мерлина Моргана-Грэма здесь близок к тому, о чем я спрашиваю stackoverflow.com/questions/2297282/ - person OutOFTouch; 05.11.2012
comment
Вам не нужно изменять имена файлов конфигурации в приложении, вы просто развертываете правильную конфигурацию в файл с указанным именем. - person Aleš Roubíček; 06.11.2012
comment
@ rarouš Не думаю, что ты понимаешь, о чем я спрашиваю. Я спрашиваю, как динамически передать файл конфигурации log4net в UseLog4Net, когда мои установщики установлены. - person OutOFTouch; 06.11.2012

Единственный способ, которым я смог это сделать, - это создать новый установщик и передать NameOfConfigFile, а в конструкторе моего установщика установить это значение в поле частного экземпляра.

_bootStrapContainer = new WindsorContainer().Install(new LoggerInstaller(configPath));

person OutOFTouch    schedule 14.11.2012