Как проверить файлы свойств журналирования Java? - PullRequest
0 голосов
/ 14 ноября 2009

У меня есть базовое средство, позволяющее пользователям удаленно применять изменения к файлам журналов в моем приложении. Некоторые журналы настраиваются с помощью файлов свойств java.util.logging, а некоторые - с помощью файлов свойств в стиле log4j / log4cplus. Я хотел бы сделать некоторые основные проверки свойств, которые пользователи пытаются применить. А именно хочу заверить следующее:

  • Каждый файл logging.properties должен всегда содержать как минимум корневой логгер / уровень ведения журнала
  • Регистратор / уровень должен быть установлен на допустимое значение. То есть они не должны иметь возможность устанавливать .level = GIBBERISH или что-то подобное.
  • Возможно, я позволю им также установить свойства MaxFileSize и MaxBackupIndex (log4j), а также свойства .limit и .count (java.util.logging).

Какой лучший способ сделать это? Очевидно, что я могу просто циклически перебирать ключи и значения в объекте Properties и искать их значения в жестко запрограммированной карте или в какой-либо другой структуре данных, которая сообщает о допустимых свойствах, но я пытаюсь найти решение, немного более элегантно, чем это.

Ответы [ 2 ]

1 голос
/ 14 ноября 2009

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

Вместо того, чтобы тестировать отдельные свойства, почему бы не создать дополнительный (временный, только для области проверки) объект логгера на основе входного файла и определить, выдает ли он ошибку?

0 голосов
/ 14 ноября 2009

«Элегантным» решением было бы написать механизм на основе правил для проверки наборов пар имя-значение. Но ИМО, который полностью подходит для этого варианта использования ... если проверки не намного сложнее, чем я себе представляю.

Я бы сказал, что в этом случае лучше всего использовать простое (не элегантное) решение.

...