2014-10-21 5 views
0

Я получаю тонны сообщений информационного журнала от стороннего баннера в моей консоли eclipse. Взломав открытую банку, я вижу, что она использует java.util.logging. Я хотел бы установить уровень выходного сигнала для своей банки в ПРЕДУПРЕЖДЕНИЕ.Подавление использования java-утилизации от сторонней банки

Я попытался с помощью аргумента VM из -Djava.util.logging.config.file = pathToMy/JUL.properties где содержимое файла являются:

handlers=java.util.logging.ConsoleHandler 
.level=WARNING 
java.util.logging.ConsoleHandler.level=WARNING 

К сожалению, это не имеет никакого значения на выходе.

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

+0

Я считаю, что вы можете установить уровни на уровне упаковки. – duffymo

ответ

1

Вы использовали JConsole, чтобы определить, что:

  1. На вкладке Summary VM показывает, что «java.util.logging свойств системы. config.file '.
  2. Вкладка MBean-> java.util.logging-> Operations-> getLoggerLevel пустого (нет значения) возвращает WARNING.
  3. Вкладка MBean-> java.util.logging-> Атрибуты-> LoggerNames содержит список активных сторонних регистраторов, которые могут быть добавлены в ваш список вещей, которые можно отключить. Журналы будут отображаться только в том случае, если исполняемый код их создал. Anonymous loggers не указаны, но настройки по умолчанию наследуются от корневого регистратора.

Вы можете добавить следующий код, чтобы проверить, что ваш конфигурационный файл работает:

public static void main(String[] arg) throws Exception { 
     String p = System.getProperty("java.util.logging.config.file"); 
     System.out.println(p); 
     System.out.println(new File(p).length()); 
     System.out.println(Logger.getLogger("").getLevel()); 
    } 
+0

Я выполнил все ваши шаги выше, и все выглядит правильно, за исключением # 3. Я не вижу список активных сторонних регистраторов. Как они получают вывод на консоль, и могут ли они быть отключены? – user2992188

+0

Я обновил ответ, чтобы включить некоторые причины, по которым они не указаны. Использует ли он глобальный журнал? – jmehrens

+0

К сожалению, мне пришлось заставить стороннего разработчика добавить файл свойств непосредственно в свою банку. Я награждаю очки за предоставление полезной информации и помощь :) – user2992188

0

Я думаю, что у вас может быть следующий фрагмент полезный. Это позволит вам установить поведение журнала на уровне пакета:

Logger logger = Logger.getLogger("org.apache.axiom"); 
logger.setLevel(Level.WARN); 
+0

Нет необходимости использовать подпись в ваших сообщениях. Обратите внимание, что внизу отображается ваше имя пользователя и аватар, который вы выбираете для своей учетной записи. –

+0

Я тоже пробовал это, но безрезультатно. Вот почему я также попробовал через файл свойств и сделал заявление на одеяло, чтобы установить все на предупреждение – user2992188

0

Перед декомпилируют баночке, чтобы найти, как установить уровень журнала, вы можете попробовать искать setLogLevel API, для которого компонент, который вы хотите отлаживать больше.

enter image description here

setLogWriter (новый PrintWriter (System.out));

Смежные вопросы