GWT Framework 启用控制台日志
Posted
技术标签:
【中文标题】GWT Framework 启用控制台日志【英文标题】:GWT Framework Enable console logs 【发布时间】:2018-06-13 14:36:35 【问题描述】:我不熟悉我的项目现在正在使用的 GWT 框架。我想跟踪代码流,因此认为我可以放置 System.out 日志或调试日志。但没有任何效果。然后我来到这个页面,看到它的日志记录完全不同。我补充说,
调试.Java
public class Debug
private static boolean isEnabled_ = false;
public static void enable() isEnabled_ = true;
public static void setEnabled( final boolean isEnabled )
isEnabled_ = isEnabled;
public static void log( final String s )
if( isEnabled_ ) nativeConsoleLog( s );
private static native void nativeConsoleLog( String s )
/*- console.log( s ); -*/;
并在我的课堂上调用
Frame.java
public void onModuleLoad()
logSC("@@@@ onModuleLoad");
Debug.enable();
Debug.log("&&&&&&&INSIDE BICC******DEBUG LOGGERRRRRRRRR**************************");
但我没有得到调试日志。你能告诉我我应该怎么做才能启用日志并在我的控制台窗口中打印。
问候, 萨兰亚·钱德拉塞卡兰
【问题讨论】:
试试 GWT.log("message); 这将在 SDM 中工作。 @ElHoss: GWT.log 也不起作用:(。我在控制台中没有看到任何日志。请你帮帮我 【参考方案1】:您的 JSNI 中的 console.log
调用需要一个 $wnd.
前缀,以便它在正确的窗口上运行(gwt 默认将其代码沙盒化到 iframe 中)。
private static native void nativeConsoleLog( String s ) /*-
$wnd.console.log( s );
-*/;
请注意,使用 JsInterop 不会出现此问题 - 将 elemental2-core 添加到您的项目中,然后调用 DomGlobal.console.log()
即可在主窗口中使用。
【讨论】:
【参考方案2】:这不是在 GWT 中进行日志记录的正确方法,GWT 已经允许您在浏览器上使用 java 日志记录,因此要启用 java 日志记录,您需要按照以下步骤操作:
1- 通过将<inherits name="com.google.gwt.logging.Logging"/>
添加到您的 XXX.gwt.xml 文件来继承 java 日志记录模块,这将启用日志记录。
2- 通过添加启用控制台记录器:
<set-property name="gwt.logging.logLevel" value="INFO"/>
<set-property name="gwt.logging.enabled" value="TRUE"/>
<set-property name="gwt.logging.consoleHandler" value="ENABLED"/>
-这是默认设置。
然后你可以像这样定义普通的java记录器
public static final Logger LOGGER = Logger.getLogger(MyClass.getName());
//use the logger
LOGGER.log(Level.info, "my log message");
这种日志记录即使在生产模式下也可以工作,并在编译后导致更大的 javascript 文件。任何与 XXX.gwt.xml 中定义的日志级别不匹配的日志语句都将从编译最终结果中删除。
另一种为开发模式或超级开发模式进行日志记录的方法是使用GWT.log
这种类型的日志记录仅适用于开发模式,但将在生产编译中删除。
有关此主题的更多阅读资料,您可以参考gwtproject web site
您也可以在gwt-users google group提问
或者您可以在gwt gitter channel 中询问实时互动聊天
【讨论】:
【参考方案3】:在此处查看使用 gwt 日志框架的解决方案:
gwt logging not working
它使用 java.util.log
【讨论】:
【参考方案4】:您需要在 gwt.xml 中添加启用它
<set-property name="gwt.logging.enabled" value="TRUE" />
【讨论】:
这还不是全部。代码还需要使用 jul-logging。以上是关于GWT Framework 启用控制台日志的主要内容,如果未能解决你的问题,请参考以下文章