Sto usando Log4J nella mia applicazione per la registrazione. In precedenza stavo usando la chiamata di debug come:
Opzione 1:
logger.debug("some debug text");
ma alcuni link suggeriscono che è meglio controllare isDebugEnabled()
prima, come:
Opzione 2:
boolean debugEnabled = logger.isDebugEnabled();
if (debugEnabled) {
logger.debug("some debug text");
}
Quindi la mia domanda è " L'opzione 2 migliora le prestazioni in qualche modo? ".
Perché in ogni caso il framework Log4J ha lo stesso controllo per debugEnabled. Per l'opzione 2 potrebbe essere utile se stiamo usando più istruzioni di debug in un singolo metodo o classe, in cui il framework non ha bisogno di chiamare il isDebugEnabled()
metodo più volte (su ogni chiamata); in questo caso chiama il isDebugEnabled()
metodo una sola volta e se Log4J è configurato per il debug a livello, in realtà chiama il isDebugEnabled()
metodo due volte:
- In caso di assegnazione di valore alla variabile debugEnabled, e
- In realtà chiamato dal metodo logger.debug ().
Non penso che se scriviamo più logger.debug()
istruzioni in metodo o classe e chiamando il debug()
metodo in base all'opzione 1, allora è un sovraccarico per il framework Log4J rispetto all'opzione 2. Poiché isDebugEnabled()
è un metodo molto piccolo (in termini di codice), potrebbe essere un buon candidato per l'allineamento.