Как определить, что Java Util Logging уже настроен? - PullRequest
2 голосов
/ 02 февраля 2012

У меня есть некоторый код, который иногда вызывается из моего собственного метода Main, а иногда он встроен в чужую программу.При настройке ведения журнала я хочу быть в состоянии обнаружить, что кто-то уже настроил ведение журнала Utiling Java, и если он это сделал, я хочу пропустить свою настройку.У меня есть этот метод:

public static boolean isLoggingAlreadyConfigured(){        
    Logger logger = Logger.getLogger("");
    Handler[] handlers = logger.getHandlers();
    return handlers != null && handlers.length > 1;
}

Но я думаю, что это ненадежно.

Можете ли вы предложить что-то лучше?

1 Ответ

3 голосов
/ 02 февраля 2012

Простой ответ заключается в том, что java.util настроен всегда настроен.

javadoc для LogManager говорит, что это глобальный объект, который созданавтоматически, и что он настраивается автоматически на основе того, что говорят несколько системных свойств, или (если свойства не заданы) с помощью встроенной конфигурации свойств ведения журнала.(Обратитесь к javadoc для деталей).Суть в том, что вы никогда не увидите регистратор в «ненастроенном» состоянии.

Вы можете выяснить, что по умолчанию говорит конфигурация встроенных свойств ведения журналов JRE, и проверить, является ли текущийКонфигурация другая.Но у этого подхода есть некоторые проблемы:

  • Встроенная конфигурация JRE могла быть изменена (согласно javadoc).
  • Различные версии JRE могут иметь значения по умолчанию (гипотетически ...).

и наиболее важные

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