使用标准GWT记录器,是否可以在xml中禁用完整包的Log语句? 或者至少是个别班级?
在xml中,我可以使用;
禁用/终止所有日志记录<set-property name="gwt.logging.enabled" value="TRUE"/>
这似乎为所有包中的所有类设置了全局。是否可以在xml中有选择地执行此操作?
这里的指南; http://www.gwtproject.org/doc/latest/DevGuideLogging.html似乎只涵盖配置rootlogger,涵盖项目中的每个日志。我可能错过了显而易见的事,但我并没有“得到”如何有选择地应用它。
鉴于我的所有日志语句都已命名;
protected static Logger Log = Logger.getLogger("parent.childc");
似乎有可能选择性地打开/关闭它们。
谢谢, 托马斯
答案 0 :(得分:0)
如果您已将所有记录器实例初始化为Logger.getLogger("Example")
,则无法有选择地将其关闭和打开,因为它们都是一个名为“示例”的实例,所以我假设这不是实际上就是这样。
在大多数情况下,这是正常的JULI - 在JVM上工作的标准机制可以在这里工作。这在开发模式中是双重的,它实际上使用标准的java.util.logging.Logger实现。因此,如果您只是在dev模式下查找已清理的日志记录,请像处理其他任何记录器一样对待它 - 从根实例中找到要禁用/启用的包或类,并将日志级别设置为您想要的位置它。
在编译后的代码中,这种行为略有不同,您可能需要进行一些实验以确切了解具体方法,我现在不记得了。但是,您仍然可以使用LogManager
,并且可以遍历所有现有的记录器,包:
LogManager manager = LogManager.getLogManager();
Enumeration<String> allLoggers = manager.getLoggerNames();
// for each String in the list, grab the logger via manager.getLogger
与Logger.getLogger
相对的优点是,这只会告诉您已经存在的记录器,而不是随时创建它们。这样你就可以有一个配置文件或url param来指定你希望看到哪些细节记录,并禁用其余的。