System.out.println() 消息在客户端 GWT 模块中被调用时去哪里了?

Where do System.out.println() messages go, when it is called in client-side GWT-module?

当我将消息写入日志时(即 com.allen_sauer.gwt.log.client.Log#debug),我可以在 Chrome->F12->Console 或(在调试期间)IDEA->Debug->Dev Mode 中看到它们。但是,如果在 IDEA 中使用了 System.out.println(),消息将出现在与记录消息相同的位置,但是当我不调试时呢?他们去哪儿了?

System.out.println() 只是在生产模式下被编译器删除。

如果你想检查,只需创建这个简单的模块:

public class Foo implements EntryPoint {

  public void onModuleLoad() {

    System.out.println("Hello World!");
  }
}

并查看生成的 javascript。

(在开发时)进行日志记录的首选方法是 com.google.gwt.core.client.GWT.log()。以这种方式记录的消息也会像您提到的那样出现在浏览器的控制台中。为了方便起见,可能 System.out.println 被映射到相同的功能。来自 GWT.log Javadoc:

Logs a message to the development shell logger in Development Mode, or to the console in Super Dev Mode. Calls are optimized out in Production Mode.