Logging with SuperDevMode. System.out.println not working
为什么?
在客户端中使用System.out.println时-CodeServer控制台中没有任何输出。
现在我正在登录浏览器控制台,但是如何登录系统控制台?
p.s。我知道最好的登录gwt的方法是使用com.google.gwt.logging.Logging模块。现在,它也可以与系统控制台一起使用。
super dev模式与生产编译基本上相同(只是未优化)
在生产中(编译的javascript),System.out不会将任何内容打印到Java服务器端进程中。您的代码在Javascript VM中运行,因此需要仔细检查才能打印到Java控制台。
如果您以开发人员模式运行,则在连接到浏览器内部插件的JVM内运行。这就是System.out起作用的原因。
不是最漂亮的解决方案,但您可以创建一个本机JSNI方法,如下所示:
1 2 3 | public static native void debug(String text)/*-{ console.debug(text) }-*/; |
然后调用:
1 | debug("text here"). |
它应该输出到控制台。
我设置了一个远程记录器来解决此问题。这样,所有客户端日志语句都将发送到仍可进行日志记录的服务器。您可以在此处找到说明:在GWT中设置remoteLoggingServlet。
然后,您可以使用常规的Java util日志记录。
1 2 | import java.util.logging.Logger; private static Logger log = Logger.getLogger("mylogger"); |
不幸的是,堆栈跟踪是在javascript中。我还没有弄清楚如何获得适当的Java的。
希望这可以帮助!