我们在GWT中将日志写入文件时遇到了一个大问题。
我通过互联网浏览了所有帖子,但我没有找到任何有价值的信息 那里。
我做了什么......
但我现在的问题是假设我在入口点类中写了一个日志。
喜欢......
//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更新,我将非常感谢你。
答案 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?。