如何在访问日志中记录请求的路径?

时间:2019-07-12 00:30:40

标签: spring jboss jboss-eap-7

我们正在组织中使用Jboos Eap 7.1,并通过以下模式启用了访问日志:

<access-log pattern="%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %{COOKIE}i %{SET-COOKIE}o %S %I %T"/>

每5分钟服务器日志显示一次:

[org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver](默认任务49)已解决[org.springframework.web.HttpMediaTypeNotAcceptableException:找不到可接受的表示形式]

但是在访问日志中,我们看到:

    GET /general-error.html HTTP/1.1 404 

哪个是错误的后备页面,所以我们不知道请求的是哪个url或spring控制器,我怎么能像nginx一样看到实际的请求路径?

1 个答案:

答案 0 :(得分:0)

您可以使用以下命令配置请求日志记录/ RequestDumping处理程序。

  1. 使用RequestDumping处理程序创建新的表达式过滤器

/subsystem=undertow/configuration=filter/expression-filter=requestDumperExpression:add(expression="dump-request")

  1. 在Undertow Web服务器中启用表达式过滤器

/subsystem=undertow/server=default-server/host=default-host/filter-ref=requestDumperExpression:add

以上命令将在undertow子系统的domain.xml / standalone.xml中添加以下配置

<server name="default-server">
            <http-listener name="default" socket-binding="http" redirect-socket="https"/>
            <host name="default-host" alias="localhost">
                ...
                <filter-ref name="requestDumperExpression"/>
            </host>
        </server>
        ...
        <filters>
            ...
            <expression-filter name="requestDumperExpression" expression="dump-request"/>
        </filters>

输出将记录在server.log文件中。

有关更多详细信息,请参考以下网址: https://access.redhat.com/solutions/2429371