Todos los registros de Websphere van a SystemOut.log

Estoy usando Log4j en mi aplicación y tengo algunos appenders para depuración y error. Probé esto en tomcat y funcionó bien. Generando todos los registros en sus respectivos archivos. Pero cuando implemento el código en WAS6.1, todos los registros se generan solo dentro de SystemOut.log.

¡Por favor ayuda!

El problema podría ser que WebSphere 6.1 utiliza Jakarta Commons Logging (JCL) internamente, y si alguno de sus códigos o bibliotecas de terceros también usan JCL, la configuración de WebSphere entra en conflicto con su aplicación que intenta usar log4j. Si esto sucede, verá exactamente lo que está viendo.

Hay múltiples referencias y publicaciones en blogs que describen formas de abordar esto. Hemos encontrado que lo más simple es crear un archivo llamado org.apache.commons.logging.LogFactory en el directorio META-INF/services de su aplicación web (en la raíz del archivo WAR). Este archivo debe contener la línea:

 org.apache.commons.logging.impl.Log4jFactory 

(Al menos con las versiones más nuevas de WebSphere …) Otra clave es que el contenedor JCL se debe cargar desde la misma ubicación que el archivo log4j. por ejemplo, tanto de WEB-INF / lib como de una biblioteca compartida. Por lo tanto, no puede volver a cargar JCL desde la copia proporcionada por WebSphere. Si son cargados por diferentes cargadores de clases , no se pueden ver correctamente.