Je suis à l'aide de Log4J dans mon application pour l'enregistrement. Auparavant, j'étais l'utilisation de débogage appel comme:
Option 1:
logger.debug("some debug text");
mais certains liens suggèrent qu'il est préférable de vérifier isDebugEnabled()
tout d'abord, comme:
Option 2:
boolean debugEnabled = logger.isDebugEnabled();
if (debugEnabled) {
logger.debug("some debug text");
}
Donc ma question est "Ne l'option 2 améliorer les performances de toute façon?".
Parce que dans tous les cas, Log4J cadre ont même vérifier debugEnabled. Pour l'option 2, il peut être bénéfique si nous sommes à l'aide de plusieurs debug déclaration de méthode ou une classe, où le cadre n'a pas besoin d'appeler l' isDebugEnabled()
méthode plusieurs fois (à chaque appel); dans ce cas, il appelle isDebugEnabled()
méthode qu'une seule fois, et si Log4J est configuré au niveau de débogage alors effectivement il appelle isDebugEnabled()
méthode deux fois:
- Dans le cas de l'attribution de la valeur à debugEnabled variable, et
- En fait appelé par l'enregistreur.méthode debug ().
Je ne pense pas que si nous écrire plusieurs logger.debug()
déclaration de la méthode ou de la classe et en appelant debug()
méthode selon l'option 1, puis c'est au-dessus de Log4J cadre en comparaison avec l'option 2. Depuis isDebugEnabled()
est une très petite méthode (en termes de code), il pourrait être un bon candidat pour inline.