2010-03-16 42 views
0

我有一個也作爲applet運行的Java應用程序。該應用程序也恰好使用名爲BasicPlayer的庫來播放.ogg文件。 BasicPlayer有一個內置的記錄器,它使用Apache Logging Commons使用內置的Java記錄器爲BasicPlayer.class創建一個記錄器。我知道即將關閉BasicPlayer記錄的唯一方法是運行這段代碼:爲什麼不能不可信的代碼在Java日誌記錄中更改日誌級別?

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

作爲常規應用程序運行時,也能正常工作。但是,作爲小程序運行時,此代碼將引發SecurityException,因爲由於某種原因,小程序無法更改非匿名日誌記錄的日誌級別(see here for a sorta-explanation)。

他們爲什麼要這樣做?誰在乎applet是否改變日誌級別?

+0

你在找什麼樣的答案?無論如何,它都是這樣。 – skaffman 2010-03-16 22:15:04

+1

我討厭那種說法。 – 2010-03-16 22:20:24

+0

對於我來說,我似乎很奇怪,我無法關閉使用我的小程序包含的代碼中的日誌記錄。基本上,我無法真正想到爲什麼applet能夠關閉日誌會有什麼不好。 – cdmckay 2010-03-17 01:58:18

回答

0

他們爲什麼要這麼做?誰在乎applet是否改變日誌級別?

嘛,一開始,其他的東西在主機上運行的JVM可使用Apache日誌記錄,以保持什麼樣的小程序正在做審計線索。如果小程序可以更改日誌記錄級別,則可以關閉審計。

另外要指出的是,BasicPlayer是開源的,所以你也有它修改源禁用日誌記錄和重建的選項。