【问题标题】:GWT: how to write client side logs into a log file in GWTGWT:如何将客户端日志写入 GWT 中的日志文件
【发布时间】:2012-02-25 12:59:53
【问题描述】:

大家好,我在 GWT 的文件中写入日志时遇到了一个大问题。

我已经浏览了互联网上的所有帖子,但我没有找到任何有价值的信息 在那里。

我做了什么...

  1. 在 web.xml 文件中添加了远程日志记录 servlet
  2. 在我的 .gwt.xml 文件中继承了日志记录模块。

但是我的问题现在在这里假设我已经在我的入口点类中编写了一个日志。

喜欢 ....

//Main class to start the appliation.....


public void onModuleLoad() {

    Logger logger=Logger.getLogger(SYTMain.class.getName());

    logger.info("Test Log in Module File");
}

现在我想将此客户端日志写入 test.log 文件。

我怎样才能做到这一点???/

如果有人知道答案,请为我提供完整的解决方案,我不想要示例。如果你真的知道那么请告诉我不要给出已经在网络上可用的答案.....

mY 的交货日期非常接近,所以请尽快更新,我会非常感谢你。

【问题讨论】:

    标签: gwt


    【解决方案1】:

    在你的模块文件中添加以下内容:

      <inherits name='com.google.gwt.logging.Logging'/>
      <set-property name="gwt.logging.enabled" value="TRUE"/>
      <!-- Set logging level to INFO -->
      <set-property name="gwt.logging.logLevel" value="INFO"/>
      <set-property name="gwt.logging.simpleRemoteHandler" value="ENABLED" />
      <!-- Add compiler.stackMode to get a readable stacktrace from JavaScript 
           It generates a set of files in WEB-INF/deploy; those files need to
           be placed on the server
        -->
      <set-property name="compiler.stackMode" value="emulated" />
    

    在您的 web.xml 中添加以下内容:

     <servlet>
        <servlet-name>remoteLoggingService</servlet-name>
        <servlet-class>com.google.gwt.logging.server.RemoteLoggingServiceImpl</servlet-class>
    </servlet>
    
    <!-- Servlet Mapping -->
    <servlet-mapping>
        <servlet-name>remoteLoggingService</servlet-name>
        <url-pattern>/<your module name>/remote_logging</url-pattern>
    </servlet-mapping>
    

    &lt;your module name&gt; 替换为您的模块名称。

    要登录,只需使用代码作为您的提及。使用来自java.util.logging 的导入。

    【讨论】:

      【解决方案2】:

      在客户端,GWT 编译为 Javascript,而 Javascript 通常不能将文件写入客户端的文件系统。 (应该很明显为什么这可能是一个坏主意)。参见例如this discussion

      如果您需要用于调试的日志,一个明显的解决方案是将记录器附加到页面上的文本区域。您始终可以手动复制并粘贴到另一个文件中。或者,如果您想远程调试,您可以让记录器写入服务器。

      【讨论】:

      • 我知道这些,但我的问题是,如何在日志文件中记录客户端活动?如何使用 GWT 提供的 SimpleRemoteHandler。
      【解决方案3】:

      只需创建一个 RPC 服务将其登录到服务器端。

      使用 servlet 端 threadlocal 获取有关客户端的信息:ThreadLocal to store ServletRequest and Response in servlet: what for?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 1970-01-01
        • 2013-11-26
        • 1970-01-01
        相关资源
        最近更新 更多