我有一个Java应用程序,它也可以作为applet运行。该应用程序还碰巧使用了一个名为BasicPlayer的库来播放.ogg文件。BasicPlayer有一个内置的记录器,它使用Apache Logging Commons通过内置的Java logger为BasicPlayer.class创建一个记录器。据我所知,关闭BasicPlayer日志记录的唯一方法是运行以下代码:
Logger.getLogger(BasicPlayer.class.getName()).setLevel(Level.OFF);这在作为常规应用程序运行时运行得很好。但是,当作为小程序运行时,此代码将抛出SecurityException,因为出于某种原因,小程序不能更改非匿名记录器(see here for a sorta-explanation)的日志级别。
他们为什么要这么做?谁会关心applet是否会更改日志级别呢?
发布于 2010-03-17 06:34:28
他们为什么要这么做?谁会关心applet是否会更改日志级别呢?
首先,在主机JVM中运行的其他东西可能会使用Apache日志记录来跟踪applet正在做什么。如果小程序可以更改日志记录级别,则可以关闭审核。
需要指出的另一件事是,BasicPlayer是开源的,因此您还可以选择修改它的源代码,以禁用日志记录和重新构建。
https://stackoverflow.com/questions/2458514
复制相似问题