Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用wildfly在文件上记录运行时错误_Java_Logging_Wildfly_Jboss Logging - Fatal编程技术网

Java 如何使用wildfly在文件上记录运行时错误

Java 如何使用wildfly在文件上记录运行时错误,java,logging,wildfly,jboss-logging,Java,Logging,Wildfly,Jboss Logging,我在wildfly 18上部署了几个具有相同groupId的web应用程序模块,比如org.foo.ecommerce 这些模块配置有自己的子组,因此: 模块1-org.foo.ecommerce.mod1 模块2-org.foo.ecommerce.mod2 模块3-org.foo.ecommerce.mod3 因此,我为每个模块配置了一个处理程序,如下所示: <periodic-rotating-file-handler name="MOD1_HANDLER">

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

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

  • 模块1-org.foo.ecommerce.mod1
  • 模块2-org.foo.ecommerce.mod2
  • 模块3-org.foo.ecommerce.mod3
  • 因此,我为每个模块配置了一个处理程序,如下所示:

    <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>
    
    注意,即使我声明了自己的异常,行为也是一样的

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

    最好使用每次部署日志记录。通过这种方式,您可以获得基于该部署的任何日志,而不仅仅是基于类的包名。
    NullPointerException
    总是记录到
    服务器上。log
    是因为它来自RESTEasy。任何服务器级模块都将在服务器日志配置级别进行日志记录。如果部署创建了自己的日志配置,则只有从部署记录的日志消息才会记录到该配置中


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

    我仍然可以使用jboss日志记录还是应该禁用它?是否有关于如何配置每次部署日志记录的指南?更新:我添加了slf4j-log4j12库和log4j.properties,但我无法发现错误处理方式的差异,因为我可以看到NullPointerException只记录在服务器开发输出上。您可以发布包含NPE的日志条目吗?我已经更新了问题,请参见底部的部分,实际上仍然没有解决问题,因此目前还没有解决方案?目前的技巧是构建一个从rest API调用的拦截器,捕获runtimeexception并记录它。正确的,除了您建议的解决方案之外,目前没有其他解决方案。
    @javax.ejb.ApplicationException(rollback = true)
    public class ApplicationException extends RuntimeException {
    }