logging - configurar - wildfly 12 log
Volcar las solicitudes HTTP en WildFly 8 (3)
Para depurar las solicitudes HTTP durante el desarrollo, me gustaría que mi servidor de aplicaciones WildFly 8 vuelque las solicitudes HTTP, incluidos el método de solicitud y los encabezados, en un archivo de registro . server.log
estaría bien.
En las fuentes del subsistema HTTP de WildFly, encontré RequestDumpingHandler y la categoría de registro correspondiente io.undertow.request.dump
Sin embargo, no puedo averiguar cómo instalar ese encabezado para que se aplique a todas las solicitudes atendidas por mi aplicación (un WAR con algunos recursos estáticos y un controlador JAX-RS).
La página de documentación correspondiente ( configuración del subsistema web de Undertow ) no explica realmente los manejadores. Hay un elemento <handler>
en la sección de configuración
<?xml version="1.0" ?>
<server xmlns="urn:jboss:domain:2.1">
...
<profile>
...
<subsystem xmlns="urn:jboss:domain:undertow:1.1">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
</server>
<servlet-container name="default">
<jsp-config/>
</servlet-container>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
<!-- <dump-request /> ?? or something?-->
</handlers>
<filters>
<response-header name="server-header" header-name="Server" header-value="WildFly/8"/>
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
</filters>
</subsystem>
...
</profile>
...
</server>
pero por lo que puedo decir, solo se esperan <file>
y proxy (?).
¿Cómo puedo registrar todos los detalles de las solicitudes HTTP entrantes en WildFly? Sé que podría instalar algún mecanismo de registro en la capa JAX-RS, pero me gustaría tener un mecanismo de volcado que maneje las llamadas de la API REST y los recursos atendidos estáticamente.
En Wildfly 9 y 10.1.0, funciona simplemente agregando
<subsystem xmlns="urn:jboss:domain:undertow:3.1">
<server name="default-server">
<host name="default-host" alias="localhost">
<access-log/>
</host>
</server>
</sub-system>
Hay un número de personas que preguntan cómo desconectar todo el cuerpo HTTP, no solo los encabezados.
Parece que existe una respuesta: https://8bitplatoon.blogspot.com/2017/02/dumping-http-requests-and-responses-in.html
En resumen, si ese enlace no sobrevive, una simple adición a su standalone.xml hará el truco:
<system-properties> <property name="com.sun.xml.ws.transport.http.HttpAdapter.dump" value="true"/> </system-properties>
Agregué esto después de <extensions>...</extensions>
y antes de <management>...</management>
, reinicié wildfly, y pude obtener cuerpos HTTP completos en los registros de mi servidor (server.log en mi caso ).
Esto no interactúa con, ni depende de la "descarga de solicitud" de Undertow, por lo que puedo decir, puede hacer una, la otra, o ambas.
Necesitaría agregar RequestDumpingHandler a su cadena de manejadores.
Como parte de Wildfly 8.1, eso todavía no es posible de manera amigable.
Esto se ha mejorado en 8.2 y 9, por lo que podrá configurarlo agregando algo como esto:
<host name="default-host" >
.....
<filter-ref name="request-dumper"/>
</host>
....
<filters>
...
<filter name="request-dumper" class-name="io.undertow.server.handlers.RequestDumpingHandler" module="io.undertow.core" />
</filters>
en la única opción de 8.1 ahora sería agregar ServletExtension http://undertow.io/undertow-docs/undertow-docs-1.2.0/#servlet-extensions
eso agregaría este RequestDumpingHandler a la cadena externa.
La versión FWIW 8.2 está casi lista, por lo que puede esperar o simplemente crear fuentes para la rama 8.x.
Para agregar la configuración anterior a través de CLI, puede utilizar:
/subsystem=undertow/configuration=filter/custom-filter=request-dumper:add(class-name="io.undertow.server.handlers.RequestDumpingHandler", module="io.undertow.core")
/subsystem=undertow/server=default-server/host=default-host/filter-ref=request-dumper:add