GWT:通过将gwt-maven-plugin属性disableClassMetadata设置为true来禁用动态日志记录

时间:2013-02-05 11:16:55

标签: gwt logging gwt-maven-plugin

我们最近在我们的gwt Web应用程序中添加了动态日志记录。

为了实现这一点,我们在webapp.gwt.xml文件中添加了一个小的javascript函数 在网址中查找“?logging”参数,返回 true false

<define-property name="dynamicLogging" values="TRUE, FALSE"/>
<property-provider name="dynamicLogging">
    <![CDATA[
        var logging = false;
        var strHref = window.location.href;

        if (strHref.indexOf("?") > -1) {
          var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
          var aParam = strQueryString.split("&").toString();

          logging = aParam.indexOf("logging") > -1;
        }

        if (logging) {
          return 'TRUE'
        } else {
          return 'FALSE'
        }
    ]]>
</property-provider>

此函数用于激活gwt.logging并将logLevel设置为“FINEST”。

<set-property name="gwt.logging.enabled" value="TRUE">
    <when-property-is name="dynamicLogging" value="TRUE"/>
</set-property>

<set-property name="gwt.logging.logLevel" value="FINEST">
    <when-property-is name="dynamicLogging" value="TRUE"/>
</set-property>

在我们的gwt-maven-plugin配置中,我们将 disableClassMetadata 属性设置为true,以生成较小的排列文件。我们谈论每个排列约90kb。

<plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>gwt-maven-plugin</artifactId>
   <configuration>
      <style>OBF</style>
      <draftCompile>false</draftCompile>
      <disableClassMetadata>true</disableClassMetadata>
      <disableCastChecking>true</disableCastChecking>
      <disableAggressiveOptimization>false</disableAggressiveOptimization>
      <optimizationLevel>9</optimizationLevel>
      <enableClosureCompiler>true</enableClosureCompiler>
      <logLevel>INFO</logLevel>
   </configuration>
</plugin>

但这会禁用我们的动态日志记录! 到目前为止我们唯一发现的是,JavaScript函数在两种配置中都能正常工作。 (disableClassMetadata = true false

Maven GWT Plugin website上的说明没有给出合理的解释,为什么这会影响webapp.gwt.xml文件中的任何代码。

感谢您的帮助!

0 个答案:

没有答案