2012-03-19 15 views
5

Lucho un poco con JBoss AS7 y el registro. No puedo encontrar nada relacionado en la web a pesar de que mi problema es muy general.JBoss AS 7: Logging

El registro predeterminado se ve actualmente como esto:

11:57:29,950 INFO [stdout] (http--0.0.0.0-8081-78) 248408930 [http--0.0.0.0-8081-78] INFO org.apache.http.impl.client.DefaultHttpClient - I/O exception (java.net.SocketException) caught when processing request: Connection reset 
11:57:29,950 INFO [stdout] (http--0.0.0.0-8081-78) 248408930 [http--0.0.0.0-8081-78] INFO org.apache.http.impl.client.DefaultHttpClient - Retrying request 

notificación del [stdout], aquellas líneas en las que escriben en stout por alguna biblioteca de registro que es utilizado por alguna biblioteca y recogido por JBoss y se escribe en el archivo de registro. Esto es lo que quiero arreglar.

Supongo que debe haber una manera de tener un adaptador que indique a log4j (o cualquier otro marco de trabajo) que inicie sesión en el subsistema de registro jboss?

Mi primera idea fue eliminar toda la configuración de log4j del classpath de mi proyecto. Encontré uno en una biblioteca que uso que se conectó a stdout. Pero esto no soluciona nada.

11:21:01,648 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.StandardServletEnvironment). 
11:21:01,648 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN Please initialize the log4j system properly. 
11:21:01,648 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

El mensaje de error habitual cuando no se configura ningún appender. Al menos puedo estar seguro de que ya no hay configuración en el classpath.

La documentación de JBoss AS ni siquiera menciona este tipo de escenario, ¿cómo se supone que debo utilizar bibliotecas de terceros cuando no puedo obtener un registro adecuado?

Realmente espero que alguien me pueda ayudar, ¡cualquier pista es apreciada!

Malax

Respuesta

14

Si bien no es en la pregunta, yo supongo que está intentando utilizar log4j con JBoss AS7. Si eso es cierto y necesitas usar los appenders, entonces necesitas excluir el log4j que viene con el servidor y empacar tu propia versión con tu implementación actualmente. Esto debería cambiar pronto una vez que se resuelva AS7-514. Una vez que se agrega esa característica, no será necesario hacer nada por su parte.

para resolver el problema por ahora primero tiene que crear una jboss-deployment-structure.xml que debería tener el siguiente aspecto:

<jboss-deployment-structure> 
    <deployment> 
     <!-- Exclusions allow you to prevent the server from automatically adding some dependencies --> 
     <exclusions> 
      <module name="org.apache.log4j" /> 
     </exclusions> 
    </deployment> 
</jboss-deployment-structure> 

después añaden su propia versión de log4j a su directorio WEB-INF/lib o cualquier otro lugar donde el despliegue haría ser capaz de encontrar la biblioteca.

Después de eso, debería funcionar como era de esperar.

+0

Lamentablemente, esto no funciona para mí por alguna razón. Arreglé el XML para que estuviera bien formado (La documentación dice que es el elemento padre para las exclusiones.) Pero todavía se envuelve el registro de mensajes como: '09: 58: 04,564 INFO [stdout] (http-localhost- 127.0.0.1-8080-1) 2012-03-22 09: 58: 04,564 DEPURACIÓN [http-localhost-127.0.0.1-8080-1] org.apache.http.wire: << " [\ n] "' – Malax

+0

El mensaje se incluirá en la consola. JBoss AS 7 recibe todos los mensajes registrados en stdout y stderr y los registra. –

+0

¡Funciona muy bien! Gracias por la información. – Dima

Cuestiones relacionadas