Я настраиваю dll для использования в качестве стороннего dll для другого приложения. Я хочу, чтобы эта dll имела свой собственный журнал, поэтому внешнему приложению не нужно ничего настраивать (я не верю, что они используют тот же журнал, что и мы). Я читал, что это не лучшее решение, но это задача, которую мне дали. Мы хотим использовать log4net с этим. Я рассмотрел несколько других вопросов здесь, и они упоминают, что они настраиваются с помощью кода, однако основная проблема, которую я испытываю, заключается в том, что в нашем коде нет четкой точки ввода для настройки log4net. Мне любопытно, следует ли мне просто отказаться от конфигурации dll и иметь метод, который вызывается вторичным приложением, которое настраивает ведение журнала dll или если есть лучший способ сделать это. Любой вход был бы очень полезенНастройка журнала log4net в dll
2
A
ответ
5
Вы можете программно настроить log4net. Возможно, добавьте этот код в конструктор вашей DLL.
if (!log4net.LogManager.GetRepository().Configured)
{
// my DLL is referenced by web service applications to log SOAP requests before
// execution is passed to the web method itself, so I load the log4net.config
// file that resides in the web application root folder
var configFileDirectory = (new DirectoryInfo(TraceExtension.AssemblyDirectory)).Parent; // not the bin folder but up one level
var configFile = new FileInfo(configFileDirectory.FullName + "\\log4net.config");
if (!configFile.Exists)
{
throw new FileLoadException(String.Format("The configuration file {0} does not exist", configFile));
}
log4net.Config.XmlConfigurator.Configure(configFile);
}
+0
Спасибо за это. Это то, что мы закончили, в конце концов, просто не обновлял вопрос. – Thomas
Смежные вопросы
- 1. отключить ведение журнала log4net в сторонней dll
- 2. Настройка настраиваемого журнала событий для log4net
- 3. Настройка log4net в VSTO
- 4. Настройка Log4Net в веб-приложения
- 5. log4net записывает неправильный файл журнала после внешнего вызова dll
- 6. Исключение журнала log4net
- 7. log4net .... отдельные файлы журнала
- 8. Настройка имени log4net logger
- 9. Log4Net Останавливает ведение журнала
- 10. Log4Net, конфигурирующий уровень журнала
- 11. Log4net - ежедневный сбой журнала
- 12. Устранение дублирования журнала в log4net
- 13. Настройка Log4net для записи в несколько файлов
- 14. log4net - журналы сторонних dll в моем файле
- 15. Настройка log4net, чтобы позволить хранения журналов для каждой библиотеки DLL
- 16. Настройка Log4Net для NHibernate
- 17. Файлы журнала Log4net не созданы?
- 18. Где хранятся файлы журнала log4net?
- 19. Log4net не записывает файл журнала
- 20. log4net: Укажите уровень журнала динамически
- 21. Log4net Не создает файл журнала
- 22. Log4Net не создает файл журнала
- 23. Log4net случайно останавливает ведение журнала.
- 24. Log4net - не создает файл журнала
- 25. уникальный файл журнала с log4net
- 26. Как проверить путь журнала log4net?
- 27. Сообщение журнала Log4net для Documentdb
- 28. Как зашифровать файлы журнала log4net
- 29. log4net - протоколирование DLL, вызванное через COM-взаимодействие
- 30. Изменение уровня журнала программно в log4net?
Вы можете настроить несколько путей log4net, включая использование файла конфигурации xml. Вам нужно либо настроить параметры ведения журнала с помощью метода запуска, либо настроить конфигурацию в файле настроек xml. –
Просьба пояснить - вам нужен пример кода, который настраивает log4net для использования классами в вашей DLL или вам нужна консультация о том, где/как вызвать этот пример кода из вашей DLL? – PaulF
@PaulF Мне не нужен пример кода, в настоящее время у меня он настроен и работает, но я не большой поклонник решения. В принципе у меня есть это: 'частный недействительным ConfigureLogging() { XmlConfigurator.Configure (новый System.IO.FileInfo (string.Format (@ "{0} \ {1}", System.Environment.CurrentDirectory, LogConfigurationFileName))); } ' Это вызывается для точек входа в DLL, чтобы гарантировать, что журнал знает, какой файл настроек использовать. Я надеялся найти лучшее решение, чем это. – Thomas