【问题标题】:GWT Framework Enable console logsGWT Framework 启用控制台日志
【发布时间】: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 也不起作用:(。我在控制台中没有看到任何日志。请你帮帮我

标签: gwt gwt-rpc


【解决方案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。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-12
        相关资源
        最近更新 更多