GWT:如何将客户端日志写入GWT中的日志文件

时间:2012-02-25 12:59:54

标签: gwt

我们在GWT中将日志写入文件时遇到了一个大问题。

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

我做了什么......

  1. 在web.xml文件中添加了远程日志记录servlet
  2. 继承了我的.gwt.xml文件中的日志记录模块。
  3. 但我现在的问题是假设我在入口点类中写了一个日志。

    喜欢......

    //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文件。

    我如何实现这一目标?/

    如果有人知道答案,那么请给我一个完整的解决方案,我不想动起来的例子。如果你真的知道那么只有plz告诉我不要给出已经在网上提供的答案.....

    mY交货日期非常接近,所以同样的ASAP更新,我将非常感谢你。

3 个答案:

答案 0 :(得分: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>

<your module name>替换为模块名称。

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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