Как записывать ошибки времени выполнения в файл с помощью wildfly - PullRequest
0 голосов
/ 05 августа 2020

У меня есть несколько модулей веб-приложений с одинаковым groupId, развернутых на wildfly 18 , скажем, org.foo.ecommerce

Эти модули настроены с собственной подгруппой , поэтому:

  1. module1 - org.foo.ecommerce.mod1
  2. module2 - org.foo.ecommerce.mod2
  3. module3 - org.foo.ecommerce.mod3

Итак, я настроил wildfly с обработчиком для каждого модуля, например:

<periodic-rotating-file-handler name="MOD1_HANDLER">
    <level name="DEBUG"/>
    <encoding value="UTF-8"/>
    <formatter>
        <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] - %s%E%n"/>
    </formatter>
    <file relative-to="log.path" path="mod1.log"/>
    <suffix value=".yyyy-MM-dd"/>
</periodic-rotating-file-handler>

<logger category="org.foo.ecommerce.mod1" use-parent-handlers="false">
    <handlers>
        <handler name="MOD1_HANDLER"/>
    </handlers>
</logger>

Теперь, если по какой-то причине возникает исключение NullPointerException, я могу найти его ТОЛЬКО в wildfly server.log.

Как можно Я отображаю все исключения в модуле, принадлежащем от?

ОБНОВЛЕНИЕ

Это трассировка стека в console / server.log

org.jboss.resteasy.spi.UnhandledException: java.lang.NullPointerException
    at org.jboss.resteasy.resteasy-jaxrs@3.9.1.Final//org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:82)
    at org.jboss.resteasy.resteasy-jaxrs@3.9.1.Final//org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:346)
    at org.jboss.resteasy.resteasy-jaxrs@3.9.1.Final//org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:193)
    at org.jboss.resteasy.resteasy-jaxrs@3.9.1.Final//org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:456)
    at org.jboss.resteasy.resteasy-jaxrs@3.9.1.Final//org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:229)
    at org.jboss.resteasy.resteasy-jaxrs@3.9.1.Final//org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:135)
    at org.jboss.resteasy.resteasy-

Уведомление что даже если я объявлю собственное исключение, поведение останется прежним

@javax.ejb.ApplicationException(rollback = true)
public class ApplicationException extends RuntimeException {
}

Ответы [ 2 ]

1 голос
/ 06 августа 2020

Причина, по которой NullPointerException всегда записывается в server.log, заключается в том, что он поступает из RESTEasy. Любые модули уровня сервера будут регистрироваться на уровне конфигурации журнала серверов. Если при развертывании создается собственная конфигурация журнала, в этой конфигурации регистрируются только сообщения журнала, зарегистрированные при развертывании. в серверных модулях для регистрации в конфигурации развертывания.

0 голосов
/ 06 августа 2020

Лучше использовать ведение журнала развертывания. Таким образом, вы получаете журналы для всего, что основано на этом развертывании, а не только на основе имени пакета класса

...