У меня есть (Smart) GWT-приложение, которое использует Spring на стороне сервера и регистрирует там свои вещи через log4j.Это работает (развертывание на tomcat6 / ubuntu 10.04 LTS).
На стороне клиента я использую библиотеку удаленного ведения журнала gwt-log, настроенную правильно.При работе в режиме отладки я вижу gwt-logs на панели Eclipse «Режим разработки».Однако при развертывании я не вижу логи gwt-log.Я настроил вещи следующим образом:
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
...
<appender name="FILE_LOG2" class="org.apache.log4j.FileAppender">
<param name="File" value="${PuzzelVandaag-instance-root}WEB-INF/logs/Sytematic.log" />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="--- %d [%.4t] %-5p %c{1} - %m%n"/>
</layout>
</appender>
...
<!-- this one works, normal server-side code -->
<category name="com.isomorphic">
<priority value="DEBUG" />
<appender-ref ref="FILE_LOG2" />
</category>
<!-- currently I use this to configure gwt-log stuff. Is this the right way? -->
<category name="gwt-log">
<level value="DEBUG" />
<appender-ref ref="FILE_LOG2"/>
</category>
Журналирование пакетов на стороне сервера работает, но у меня проблемы с клиентской стороной.Я уверен, что сервлет удаленной регистрации работает, так как я не вижу никаких ошибок в этом.У меня он настроен следующим образом, в web.xml:
<servlet>
<servlet-name>gwt-log-remote-logger-servlet</servlet-name>
<servlet-class>com.allen_sauer.gwt.log.server.RemoteLoggerServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>gwt-log-remote-logger-servlet</servlet-name>
<url-pattern>/[modulename]/gwt-log</url-pattern>
</servlet-mapping>
Когда я записываю материал, я делаю вызов как Log.debug("some msg")
, импортируя com.allen_sauer.gwt.log.client.Log
.
All-in-Я думаю, я следовал правильному подходу.Я также запускаю хост-режим с параметром -Dlog4j.debug, и он говорит мне следующее:
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [gwt-log] additivity to [true].
log4j: Level value for gwt-log is [DEBUG].
log4j: gwt-log level set to DEBUG
log4j: Adding appender named [STDOUT] to category [gwt-log].
log4j: Adding appender named [SmartClientLog] to category [gwt-log].
log4j: Adding appender named [FILE_LOG2] to category [gwt-log].
Для завершения вот соответствующая часть .gwt.xml:
<inherits name="com.allen_sauer.gwt.log.gwt-log-DEBUG"/>
<set-property name="log_DivLogger" value="DISABLED"/>
<!-- In gwt-log-3.0.3 or later -->
<inherits name="com.allen_sauer.gwt.log.gwt-log-RemoteLogger"/>
Я что-то упускаю из виду?Я новичок в log4j ... Любая помощь будет принята с благодарностью!