Para optimizar la ejecución de código al utilizar Log4J es recomendable escribir las trazas de la siguiente forma:
cal.debug("Número: " + i + " es " + String.valueOf(ent[i]));
}
Si te fijas, antes de llamar a debug, el intérprete de java tiene que evaluar una expresión, y esto lleva tiempo. Si no está activado el debug, evitamos esta evaluación y por tanto ahorramos tiempo.
Más en What is the fastest way of (not) logging? del Log4J FAQ (en inglés).
Log4E es un buen plugin de Eclipse que te ayudará a organizar las trazas de log en el código.
Nota: He vuelto a trabajar con Java/J2ee, y no será raro que a partir de ahora escriba acerca de Java, así que he creado una nueva categoría.



El trazeo de log4j así como si depuramos atraves de system.out.println(xxx); ralentiza la ejecución de la aplicación sobre manerá en una ocasión al implementar un buscador en mi anterior empresa, las trazas lo ralentizaban tanto que estuve una semana creando polica de optimización con Tamino mi base de datos.
Es muy importante utilizar esta instucción además de utilizar log4j en lugar de los system si no podríamos logear nada en producción. Para visualizar las trazas recomiendo la aplicación propia de log4j chainsaw el basico, propio del log4j arrancala del framewor asi:
set JAVAPATH=C:\desarrollo\java\install\j2sdk1.4.2_07
set PATH=.;%JAVAPATH%\bin;%PATH%
set CLASSPATH=.\;%JAVAPATH%\lib\classes.zip;C:\desarrollo\java\proyectos\gesiaap2\webapp\WEB-INF\lib\log4j.jar;%CLASSPATH%
java org/apache/log4j/chainsaw/Main
o si no el chainsaw 2 lo enontraras en la página de log4j y es mucho más utilizable. Para el framework lo veo mucho mejor que las pistas de auditoria puedes filtra los log y el chainsaw 2 te lo muestra en forma de árbol, cada paquete con su log y de varias aplicaciones para mi sinceramente imprescindible..
Se me olvidaba si vais a utilizar chainsaw debeis de configurar log4j.xml algún día colgare ejemplos en mi página hasta entonces tirad de la docu de log4j
Bienvenido al apasionante mundo de java!! ;)
Saludos,
Raúl