And*_*ner 9 java logging swing awt
我正在使用java日志记录将我的应用程序的日志消息写入日志文件和其他目标.设置日志级别后FINE,我还从AWT/Swing获取(不需要的)消息,例如:
{0}, when grabbed {1}, contains {2}
Run Code Online (Sandbox Code Playgroud)
和别的.查看JDK源代码(参见此处),可以看到相应记录器的名称sun.awt.X11.grab.XWindowPeer.
我从Java日志框架中理解的是,这个日志记录处理程序应该从其父类继承其loglevel sun.awt.
我尝试了以下方法:
Logger.getLogger("sun.awt").setLevel(Level.OFF);
Run Code Online (Sandbox Code Playgroud)
但AWT/Swing调试消息仍出现在日志输出中.
以编程方式禁用这些日志消息的推荐方法是什么(同时仍然允许FINE来自其他来源的消息)?
小智 5
如果您只想记录自己应用程序的消息,可以禁用所有消息,然后为应用程序显式启用消息:
Logger.getRootLogger().setLevel(Level.OFF);
Logger.getLogger("package.of.your.application").setLevel(Level.ALL);
Run Code Online (Sandbox Code Playgroud)
在用于记录的属性文件(例如logging.properties)中,这将是:
.level = OFF
package.of.your.application.level = ALL
Run Code Online (Sandbox Code Playgroud)