Estoy usando Log4J en mi aplicación para iniciar sesión. Anteriormente estaba usando la llamada de depuración como:
Opción 1:
logger.debug("some debug text");
pero algunos enlaces sugieren que es mejor verificar isDebugEnabled()
primero, como:
Opcion 2:
boolean debugEnabled = logger.isDebugEnabled();
if (debugEnabled) {
logger.debug("some debug text");
}
Entonces mi pregunta es " ¿La opción 2 mejora el rendimiento de alguna manera? ".
Porque, en cualquier caso, el marco Log4J tiene la misma verificación para debugEnabled. Para la opción 2, podría ser beneficioso si estamos usando múltiples declaraciones de depuración en un solo método o clase, donde el marco no necesita llamar al isDebugEnabled()
método varias veces (en cada llamada); en este caso, llama al isDebugEnabled()
método solo una vez, y si Log4J está configurado para depurar el nivel, en realidad llama al isDebugEnabled()
método dos veces:
- En caso de asignar valor a la variable debugEnabled, y
- Realmente llamado por el método logger.debug ().
No creo que si escribimos múltiples logger.debug()
declaraciones en método o clase y debug()
método de llamada de acuerdo con la opción 1, entonces es una sobrecarga para el marco Log4J en comparación con la opción 2. Dado que isDebugEnabled()
es un método muy pequeño (en términos de código), podría Ser un buen candidato para la línea.