Как настроить ведение журнала Generell для сервера Vaadin и клиентской части? - PullRequest
0 голосов
/ 10 июля 2019

В моем приложении Vaadin есть какое-то таинственное поведение (случайным образом я получаю белое окно браузера). Поэтому я хочу активировать ведение журнала в целом для клиентской и серверной сторон, чтобы, надеюсь, обнаружить некоторые полезные советы, в чем проблема. Чтобы активировать ведение журнала на стороне клиента (GWT), я нашел что-то вроде этого, которое должно быть помещено в widgetset.gwt.xml:

<inherits name="com.google.gwt.logging.Logging"/>
<set-property name="gwt.logging.simpleRemoteHandler" value="ENABLED" />
<set-property name="gwt.logging.logLevel" value="INFO"/> <!-- SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST -->
<set-property name="gwt.logging.enabled" value="TRUE"/>

Но когда я запускаю приложение и что-то должно быть зарегистрировано, я вижу только сообщение об ошибке:

com.vaadin.server.VaadinServlet          : Requested resource [/VAADIN/widgetsets/myApplication.vaadin.widgetset.MyApplicationWidgetset/remote_logging] not found from filesystem or through class loader. Add widgetset and/or theme JAR to your classpath or add files to WebContent/VAADIN folder.

Для регистрации на стороне сервера я нашел:

com.Vaadin=FINER

Но где я должен это разместить? Насколько я знаю, Ваадин использует регистраторы Java. Я использую log4j. Но должно быть возможно войти с помощью регистратора Java в регистратор log4j, или? В конце я хочу иметь приложение с большим количеством записей на стороне клиента и сервера в моем файле журнала log4j.

Большое спасибо

Ответы [ 3 ]

0 голосов
/ 12 июля 2019

Мне удалось решить мои проблемы с удаленной регистрацией.Я забыл добавить новый сервлет, который вызывается удаленной регистрацией для «передачи» данных с клиента на сервер, например:

@WebServlet(
        name = "remoteLogging",
        // The url from the error message according missing ressources
        urlPatterns = "/VAADIN/widgetsets/myApplication.vaadin.widgetset.MyApplicationWidgetset/remote_logging"
)
public class GwtRemoteLoggingServlet
extends com.google.gwt.logging.server.RemoteLoggingServiceImpl
{}

Я не могу использовать консоль отладки и тому подобное, потому что проблема возникает тольков производственной среде.И я не хочу объяснять нашим клиентам, как использовать инструменты разработки Firefox ...

Спасибо за подсказку относительно u2f.Я посмотрю, но я не думаю, что это проблема, потому что это также происходит в Chrome и т. Д. Но все же мы используем версию Vaadin, которая затрагивает, так что ...

Я сообщу, еслиУ меня есть новости.

0 голосов
/ 12 июля 2019

Мне также удалось активировать ведение журнала на стороне сервера Vaadin и Atmosphere.Прежде всего это должно быть com.vaadin вместо com.Vaadin .Я также возглавляю проблему, чтобы настроить JUL, потому что я не использую JUL где-то еще.Я сделал это быстро и грязно:

final String julConfiguration = String.join( " \n",
        "handlers = java.util.logging.FileHandler",
        "java.util.logging.FileHandler.limit = 99999999",
        "java.util.logging.FileHandler.count = 20",
        "java.util.logging.FileHandler.pattern = /<path>/java_util_logging_%u_%g.log",
        "com.vaadin.level = ALL",
        "org.atmosphere.level = ALL"
);

final BufferedInputStream inputStream = new BufferedInputStream(
        new ReaderInputStream( new StringReader( julConfiguration ) ) );
LogManager.getLogManager().readConfiguration( inputStream );
0 голосов
/ 11 июля 2019

Если вы обновляете module.gwt.xml, вы также должны обновить путь к классу компилятора GWT, включив в него JAR-класс и исходный код файлы используемой библиотеки.

...