Зависимость между приложениями log4j

Я пишу настраиваемое приложение log4j, и я хочу полагаться на другое настроенное приложение в качестве запасного варианта на случай, если мое приложение (База данных) выйдет из строя.

Как я могу гарантировать порядок построения приложений? Метод activateOptions() моего приложения пытается получить доступ к другому приложению и терпит неудачу, потому что он еще не создан / не зарегистрирован.


person ripper234    schedule 10.08.2009    source источник


Ответы (3)


Я предлагаю переместить / скопировать параметры конфигурации для второго приложения в конфигурацию вашего пользовательского приложения, а затем создать второе приложение самостоятельно внутри своего пользовательского приложения.

person Aaron Digulla    schedule 10.08.2009
comment
Ух ты, похоже, твой ответ направлен на другой вопрос. Да, я знаю, что в аппендерах нет ничего загадочного. Да, я знаю, что конфигурация привязана к сеттерам / получателям (и мне не хватает свойств C #, кстати). Я спросил о зависимостях между разными регистраторами. Насколько ваш ответ актуален? - person ripper234; 10.08.2009
comment
Поразите это - зависимости между разными дополнениями, а не регистраторами. - person ripper234; 10.08.2009
comment
Да, это то, чем я закончил. Менее чисто, но это сработает. - person ripper234; 10.08.2009

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

Вы также можете взглянуть на logback, преемника log4j, который довольно хорошо документирован.

person Ceki    schedule 10.08.2009

Если окажется, что нет способа сделать то, что вы хотите, вы можете создать и настроить «резервный» аппендер из своего «основного» приложения, вместо того, чтобы оставлять его для настройки log4j. Не очень хорошее решение, но я не знаю, как добавить зависимости между приложениями в противном случае.

person skaffman    schedule 10.08.2009