Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gwt 如何在某些类中禁用记录器';是什么还是一个包裹?_Gwt_Logging - Fatal编程技术网

Gwt 如何在某些类中禁用记录器';是什么还是一个包裹?

Gwt 如何在某些类中禁用记录器';是什么还是一个包裹?,gwt,logging,Gwt,Logging,使用标准GWT记录器,是否可以禁用xml中完整包的日志语句? 或者至少是个别班级的 目前,在xml中,我可以禁用/终止所有日志记录 <set-property name="gwt.logging.enabled" value="TRUE"/> 似乎有选择地打开/关闭它们应该是可能的 谢谢, Thomas如果您将所有记录器实例都初始化为logger.getLogger(“示例”),则无法有选择地关闭和打开它们,因为它们都是一个名为“示例”的实例,所以我假设实际情况并非如此 在

使用标准GWT记录器,是否可以禁用xml中完整包的日志语句? 或者至少是个别班级的

目前,在xml中,我可以禁用/终止所有日志记录

<set-property name="gwt.logging.enabled" value="TRUE"/>    
似乎有选择地打开/关闭它们应该是可能的

谢谢,
Thomas

如果您将所有记录器实例都初始化为
logger.getLogger(“示例”)
,则无法有选择地关闭和打开它们,因为它们都是一个名为“示例”的实例,所以我假设实际情况并非如此

在大多数情况下,这是正常的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
LogManager=LogManager.getLogManager();
枚举allLoggers=manager.getLoggerNames();
//对于列表中的每个字符串,通过manager.getLogger获取记录器
Logger.getLogger
相比,这种方法的优点是,它只会告诉您已经存在的记录器,而不会在您运行时创建它们。通过这种方式,您可以拥有一个配置文件或url参数,指定您希望看到哪些详细信息被记录,并禁用其余的


编辑:我再次运行了一个旧的示例,开发模式和生产模式之间的主要区别在于,在生产模式下,每个包都有一个记录器,根在顶部,特定的命名记录器为“叶节点”,而在开发模式下,所有记录器似乎都直接放在根记录器中,没有中间包。如果您为某个特定的包请求了一个记录器,那么它可能会生成一个记录器,但我没有进行测试以找到答案。

这是有用的,但这是一个运行时解决方案。我希望gwt.xml中有一些东西。例如,我可以关闭xml中的所有登录,它甚至不会编译这些行。我希望这也能有选择地进行。而且,你是对的,他们不叫“榜样”。为清晰起见,编辑我的问题。
LogManager manager = LogManager.getLogManager();
Enumeration<String> allLoggers = manager.getLoggerNames();
// for each String in the list, grab the logger via manager.getLogger