Автоматическая конфигурация log4j и пакет ресурсов - PullRequest
0 голосов
/ 20 октября 2011

Две проблемы / вопросы:

1) Во многих обсуждениях / форумах / других разделах log4j я вижу результаты определения log4j.debug, содержащего ссылки на файл конфигурации log4j с префиксом «file:»как показано ниже:

log4j: Using URL [file:/data/app/conf/log4j.properties] for automatic log4j configuration.

В коде, который я обновляю (автор другой разработчик, который сейчас работает в другом месте), я вижу:

log4j: Using URL [<b>bundleresource</b>://23/log4j.properties] for automatic log4j configuration

Что / где находится "источник ресурсов", как показано выше?Я думаю, что это выделенный плагин Eclipse для ресурсов, который я не смог определить.


2) Этот вопрос связан с более широкой проблемой невозможности загрузки файла конфигурации log4j без явноговставив его в аргументы командной строки JVM (например, -Dlog4j.configuration).Я заменяю приложение на основе плагинов Eclipse на тестовом сервере, у которого этот аргумент командной строки не указан в сценарии запуска и может корректно запускаться при правильной инициализации log4j.Когда я собираюсь заменить это приложение последней сборкой из нашего исходного репозитория, приложение не может найти файл конфигурации log4j.Любые мысли о том, почему первое приложение может запустить и найти файл конфигурации log4j, а второе (более новое) приложение не может?

Любая помощь будет принята с благодарностью.

Спасибо!



Обновление / редактирование

Выход из приложения с определенным log4j.debug:

log4j: Trying to find [log4j.xml] using context classloader sun.misc.Launcher$AppClassLoader@9fe666.
log4j: Trying to find [log4j.xml] using sun.misc.Launcher$AppClassLoader@9fe666 class loader.
log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
log4j: Trying to find [log4j.properties] using context classloader sun.misc.Launcher$AppClassLoader@9fe666.
log4j: Trying to find [log4j.properties] using sun.misc.Launcher$AppClassLoader@9fe666 class loader.
log4j: Trying to find [log4j.properties] using ClassLoader.getSystemResource().
log4j: Could not find resource: [null].

1 Ответ

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

Вы можете загрузить файл свойств для Log4j, сначала загрузив свойства, а затем добавив его в конфигуратор свойств log4j:

Properties props = new Properties();
FileInputStream fis = new FileInputStream("mylog4j.properties");
props.load(fis);
fis.close();
PropertyConfigurator.configure(props);

Ресурс пакета похож на специфическую для библиотеки вещь. Я рекомендую использовать grep для исходного кода:

grep -irn ./ -e "bundleresource"
...