使用SuperDevMode记录。 System.out.println无效

时间:2012-07-29 09:21:13

标签: gwt

为什么?

在客户端中使用 System.out.println 时 - CodeServer 的控制台中不会输出任何内容。

现在我正在登录浏览器控制台,但是如何登录系统控制台?

P.S。我知道登录gwt的最佳方法是使用 com.google.gwt.logging.Logging 模块。它现在也在使用系统控制台。

3 个答案:

答案 0 :(得分:4)

超级开发模式基本上与生产编译相同(它只是不优化)

在生产中(已编译的javascript)System.out不会在您的Java服务器端进程中打印任何内容。您的代码在Javascript VM中运行,它需要通过电线打印到java控制台。

如果您在开发模式下运行,则您正在连接到浏览器内插件的JVM内部运行。这就是System.out的工作原理。

答案 1 :(得分:1)

我设置了一个远程记录器来解决这个问题。这样,所有客户端日志语句都将发送到日志仍然有效的服务器。您可以在此处找到说明:Setup a remoteLoggingServlet in GWT

然后您可以使用普通的java util日志记录。

import java.util.logging.Logger;
private static Logger log = Logger.getLogger("mylogger");

不幸的是,javascript中的堆栈跟踪。我还没弄明白如何获得正确的java。 希望这可以帮助!

答案 2 :(得分:1)

不是最漂亮的解决方案,但您可以创建这样的本机JSNI方法:

public static native void debug(String text)/*-{
    console.debug(text)
}-*/;

然后打电话:

debug("text here").

它应该输出到控制台。