Настройка приложения Log4Net в другом файле, отличном от основного файла конфигурации - PullRequest
1 голос
/ 28 октября 2011

Я хочу поместить раздел appender в другой файл, отличный от моего основного файла конфигурации log4net.

Цель состоит в том, чтобы позволить мне публиковать свое приложение с помощью log4net.config, но не стирать информацию о некоторых клиентах, такую ​​как параметры smtp.

Идея состоит в том, чтобы иметь:

  <logger name="DatabaseLogger">    
    <level value="ALL" />
    <appender-ref ref="AdoNetAppender" />
    <appender-ref ref="SmtpAppender" />
  </logger>

 <appender configSource="log4netsmtp.config"/>

log4netsmtp.config создается клиентами по соображениям безопасности (с моей помощью) и никогда не изменяется мной.

Извините за мой английский и спасибо, что прочитали меня.

Привет

1 Ответ

1 голос
/ 29 октября 2011

Вы можете загрузить его через сборку GetManifestResourceStream, чтобы получить ваш файл и обработать его как xml, затем для инициализации своего регистратора вы можете использовать класс log4net.config.XmlConfigurator и передать ему свой экземпляр XmlElement или добавить свой XmlElement к существующемуКонфигурация log4net xml:

Assembly a = Assembly.GetAssembly(this.GetType());
Stream stream = a.GetManifestResourceStream("MyAssembly.ConfigFolder.logger.config");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(stream);
// eventually append, modify, merge, check the xml with other info
XmlConfigurator.Configure(xmlDoc);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...