0

我在wildfly 18上部署了几个具有相同 groupId 的 Web 应用程序模块,比如说org.foo.ecommerce

这些模块配置有自己的子组,因此:

  1. 模块1 - org.foo.ecommerce.mod1
  2. 模块2 - org.foo.ecommerce.mod2
  3. 模块3 - 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 上找到它。

如何在属于的模块上显示所有异常?

更新

这是控制台 / 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 {
}
4

2 回答 2

1

NullPointerException总是记录到的原因server.log是因为它来自 RESTEasy。任何服务器级别的模块都将在服务器日志配置级别进行记录。如果部署创建它自己的日志配置,则只有从部署记录的日志消息会记录到该配置。

也就是说,存在一个未解决的问题WFCORE-4807,它可能允许将在服务器模块中创建的日志记录到部署配置中。

于 2020-08-06T18:24:45.873 回答
0

您最好使用每个部署日志记录。这样,您就可以获得基于该部署的任何内容的日志,而不仅仅是基于类的包名称

于 2020-08-06T08:19:55.197 回答