我使用的是GWT 2.6和GWT-log3.3.0。我试图用gwt-日志获取远程日志消息。我试过这个:
Log.fatal("This is what an exception might look like", new RuntimeException("2 + 2 = 5"));这是我的gwt.xml:
<module rename-to='testgwt'>
<inherits name="com.google.gwt.logging.Logging" />
<set-property name="gwt.logging.logLevel" value="INFO" />
<set-property name="gwt.logging.enabled" value="TRUE" />
<set-property name="gwt.logging.popupHandler" value="DISABLED" />
<set-property name="gwt.logging.developmentModeHandler" value="ENABLED" />
<inherits name="com.allen_sauer.gwt.log.gwt-log-DEBUG" />
<inherits name="com.allen_sauer.gwt.log.gwt-log-RemoteLogger" />
<set-property name="log_ConsoleLogger" value="ENABLED" />
<set-property name="log_DivLogger" value="ENABLED" />
<set-property name="log_FirebugLogger" value="ENABLED" />
<set-property name="log_GWTLogger" value="ENABLED" />
<set-property name="log_SystemLogger" value="ENABLED" />
<set-property name="compiler.emulatedStack" value="true" />
<set-configuration-property name="compiler.emulatedStack.recordLineNumbers" value="true"/>
<set-configuration-property name="compiler.emulatedStack.recordFileNames" value="true"/>我的入门课:
public void onModuleLoad() {
Log.setUncaughtExceptionHandler();
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
onModuleLoad2();
}
});
}
public void onModuleLoad2() {
Log.fatal("This is what an exception might look like", new RuntimeException("2 + 2 = 5"));
}我可以看到,在web/部署/web/符号地图/中有许多大小为4.3MB的文件。因此,我想symbolMaps是成功生成的。
我的远程servlet配置是:
<servlet>
<servlet-name>gwt-log-remote-logger-servlet</servlet-name>
<servlet-class>com.allen_sauer.gwt.log.server.RemoteLoggerServiceImpl</servlet-class>
<init-param>
<param-name>symbolMaps</param-name>
<param-value>WEB-INF/deploy/testgwt/symbolMaps/</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>gwt-log-remote-logger-servlet</servlet-name>
<url-pattern>/testgwt/gwt-log</url-pattern>
</servlet-mapping>我编译时风格模糊。在我的WEB/lib文件夹中,我有gwt-log.3.3.jar文件。
在客户端我得到
(-:-) 2014-02-20 23:09:54,529 [FATAL] This is what an exception might look like
java.lang.RuntimeException: 2 + 2 = 5
at Unknown.ui(StackTraceCreator.java:180)
at Unknown.Zf(StackTraceCreator.java:518)
at Unknown.Yf(Throwable.java:56)
at Unknown.kh(Exception.java:29)
at Unknown.mh(RuntimeException.java:29)
at Unknown.PW(Testgwt.java:66)
at Unknown.TW(Testgwt.java:52)
at Unknown.ki(SchedulerImpl.java:180)
at Unknown.bi(SchedulerImpl.java:345)
at Unknown.oi(SchedulerImpl.java:78)
at Unknown.ii(SchedulerImpl.java:138)
at Unknown.Kh(Impl.java:290)
at Unknown.Oh(Impl.java:347)
at Unknown.anonymous(Impl.java:93)
at Unknown.anonymous(UnloadSupport.java:42)在服务器端,我得到:
SEVERE: This is what an exception might look like
java.lang.RuntimeException: 2 + 2 = 5
at Unknown.ui(StackTraceCreator.java:180)
at Unknown.Zf(StackTraceCreator.java:518)
at Unknown.Yf(Throwable.java:56)
at Unknown.kh(Exception.java:29)
at Unknown.mh(RuntimeException.java:29)
at Unknown.PW(Testgwt.java:66)
at Unknown.TW(Testgwt.java:52)
at Unknown.ki(SchedulerImpl.java:180)
at Unknown.bi(SchedulerImpl.java:345)
at Unknown.oi(SchedulerImpl.java:78)
at Unknown.ii(SchedulerImpl.java:138)
at Unknown.Kh(Impl.java:290)
at Unknown.Oh(Impl.java:347)
at Unknown.anonymous(Impl.java:93)
at Unknown.anonymous(UnloadSupport.java:42)我要做什么才能使服务器端的去模糊处理在生产中使用样式混淆?
编辑:
即使我不使用:
symbolMaps WEB-INF/deploy/testgwt/symbolMaps/ 它不会改变任何事情。symbolMaps文件夹的路径似乎是正确的。在我的eclipse应用程序项目中,也有一些文件是在gwt comile之后生成的。请参阅我所做的这个演示eclipse项目:https://github.com/confile/gwtlogtest
编辑:我在Tomcat 7.0.52服务器上运行我的应用程序。在我的catalina.log中有以下警告:
Feb 21, 2014 12:08:11 AM com.allen_sauer.gwt.log.server.ServerLogImplJDK14 log
WARNING: Servlet configuration parameter 'symbolMaps' specifies directory
'WEB-INF/deploy/testgwt/symbolMaps/' which does not exist or is not relative
to your server's current working directory '/'
Feb 21, 2014 12:08:11 AM com.allen_sauer.gwt.log.server.ServerLogImplJDK14 log
WARNING: In order to enable stack trace deobfuscation, please specify
the 'symbolMaps' <init-param> for the com.allen_sauer.gwt.log.server.RemoteLoggerServlet servlet in your web.xml似乎找不到symbolMaps了。我查过它就在这条路上。
发布于 2014-02-20 16:22:57
模块中有这些属性吗?
<set-property name="compiler.stackMode" value="emulated" />
<set-configuration-property name="compiler.emulatedStack.recordLineNumbers" value="true" />
<set-configuration-property name="compiler.emulatedStack.recordFileNames" value="true" />请注意,如果希望对生产代码进行完全优化,则应删除这些属性。
发布于 2016-12-08 11:51:01
这是我的配置,它工作得很好:客户端配置(Task.gwt.xml):
<!-- Enabling server side logging: -->
<inherits name="com.google.gwt.logging.Logging"/>
<set-property name="gwt.logging.logLevel" value="SEVERE"/>
<set-property name="gwt.logging.simpleRemoteHandler" value="ENABLED" />
<!-- To show line number of occurred exception in server side logging (This will increase compiled js size): -->
<set-property name="compiler.stackMode" value="emulated"/>
<set-configuration-property name="compiler.emulatedStack.recordLineNumbers" value="true"/>
<set-configuration-property name="compiler.emulatedStack.recordFileNames" value="true"/>
<set-property name="gwt.logging.enabled" value="TRUE" />
<set-property name="gwt.logging.developmentModeHandler" value="ENABLED" />
<set-property name="gwt.logging.systemHandler" value="ENABLED" />
<set-property name="gwt.logging.popupHandler" value="DISABLED" />
<set-property name="gwt.logging.consoleHandler" value="ENABLED" />
<set-property name="gwt.logging.firebugHandler" value="ENABLED" />服务器端配置(web.xml):
<!-- gwt remote logging -->
<servlet>
<servlet-name>remoteLogging</servlet-name>
<servlet-class>com.google.gwt.logging.server.RemoteLoggingServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>remoteLogging</servlet-name>
<url-pattern>/gwt/ir.asta.zrm.cm.gwt.Task/remote_logging</url-pattern>
</servlet-mapping>https://stackoverflow.com/questions/21910865
复制相似问题