4

为什么?

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

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

ps 我知道登录 gwt 的最佳方式是使用com.google.gwt.logging.Logging模块。它现在也可以与系统控制台一起使用。

4

3 回答 3

4

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

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

如果您在开发模式下运行,则您在连接到浏览器内插件的 JVM 中运行。这就是 System.out 有效的原因。

于 2012-07-29T10:12:50.377 回答
1

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

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

然后只需调用:

debug("text here").

它应该输出到控制台。

于 2014-05-27T14:52:02.217 回答
1

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

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

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

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

于 2012-07-30T00:28:58.090 回答