2015-11-19 2 views
1

Я пытаюсь упростить нашу конфигурацию log4net по нескольким проектам.Конфигурация шаблона Log4Net

У нас есть несколько сервисов, которые создают журналы. Их приложения указаны в каждом приложении app.config. Это создает много повторений.

Я хотел бы перенести конфигурацию log4net отсюда и в Log4NetConfiguration.config файл можно по ссылке с каждого проекта аналогично принятому ответу на этот вопрос:

Share log4net configuration across multiple projects

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

Мы вызываем log4net.Config.XmlConfigurator.Configure() из общей сборки утилит - как это сделать, чтобы загрузить эту версию Log4NetConfiguration.config из текущей службы?

+0

Когда вы добавляете файл в качестве ссылки, он будет обрабатываться как локальный файл и будет скопирован в каталог bin, готовый к загрузке в службу: разумно получить путь и передать его новый экземпляр «FileInfo», позволяющий проверить файл перед вызовом 'XmlConfigurator.ConfigureAndWatch (fileInfo)' - log4net не будет генерировать исключения, если он не может найти файл. – stuartd

ответ

1

Согласно комментарию StuartD, он находится в каталоге bin.

Таким образом, вы можете просто использовать Assembly.GetExecutingAssembly(). Местоположение, чтобы получить расположение файла конфигурации, релевантного для запущенного приложения.

Затем используйте XmlConfigurator.ConfigureAndWatch (fileInfo), как было предложено.

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

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