Почему ненадежный код не может изменить уровень журнала в Java Logging? - PullRequest
0 голосов
/ 17 марта 2010

У меня есть приложение Java, которое также работает как апплет. Приложение также использует библиотеку BasicPlayer для воспроизведения файлов .ogg. BasicPlayer имеет встроенный регистратор, который использует Apache Logging Commons для создания регистратора для BasicPlayer.class с использованием встроенного регистратора Java. Единственный известный мне способ отключить ведение журнала BasicPlayer - запустить этот код:

Logger.getLogger(BasicPlayer.class.getName()).setLevel(Level.OFF);

Это прекрасно работает при запуске как обычное приложение. Однако при запуске в качестве апплета этот код вызывает исключение SecurityException, поскольку по какой-то причине апплеты не могут изменить уровень журнала неанонимных регистраторов ( см. Здесь пояснение сорта ).

Зачем им это делать? Кому интересно, если апплет изменит уровень журнала?

1 Ответ

1 голос
/ 17 марта 2010

Зачем им это делать? Кому интересно, если апплет изменит уровень журнала?

Ну, для начала, другие вещи, работающие в JVM хоста, могут использовать протоколирование Apache для отслеживания того, что делает апплет. Если апплет может изменить уровень ведения журнала, он может отключить аудит.

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

...