У меня проблемы с настройкой log4net для работы так, как я хочу.У меня есть библиотека классов Library.dll, которая используется как моим приложением Mine.exe, так и сторонним приложением Other.exe.У меня есть другая библиотека классов Util.dll, которая используется как Mine.exe, так и Library.dll.
Mine.exe и Other.exe выполняются параллельно, и я хочу использовать два экземпляра Library.dllтот же лог-файл.Он также должен быть отделен от лог-файла Mine.exe.Util.dll должен регистрироваться в лог-файле Library.dll при вызове из Library.dll, а лог-файл Mine.exe при вызове из Mine.exe.
Редактировать: я думаю, что это было немного трудно понятьВот как я хочу, чтобы я работал:
Mine.exe регистрирует в Mine.log
Other.exe ничего не регистрирует (стороннее приложение)
Mine.exe -> Library.dll регистрируется в C: \ Library.log
Other.exe -> Library.dll регистрируется в C: \ Library.log
Mine.exe -> Util.dll регистрируется в Mine.log
Mine.exe -> Library.dll -> Util.dll регистрирует в C: \ Library.log
Other.exe -> Library.dll -> Util.dll регистрирует в C: \ Library.log Other.exe не делаетt Вызовите Util.dll напрямую.
Сначала я попытался загрузить пользовательскую конфигурацию log4net в Library.dll, используя:
log4net.Config.XmlConfigurator.Configure(new FileInfo("Library.log4net.config"));
Но в результате Mine.exe также вошел в библиотеку.dll logfile.
Затем я попытался добавить следующий атрибут сборки в Library.dll:
[assembly: log4net.Config.Repository("Library")]
, который содержал отдельные журналы, но затем Util.dll записывался в журнал Mine.exeфайл даже при вызове из библиотеки .dll.Я думаю, я мог бы использовать репозиторий ("Util") в Util.dll, AliasReposity ("Util", "Library") в Library.dll и AliasReposity ("Util", "Mine") в Mine.exe, но на самом деле у меня многобиблиотеки классов в проекте и лучше не идти по этому пути.
Есть идеи, как заставить это работать?
/ Andreas