Maison  >  Questions et réponses  >  le corps du texte

java - 为什么Log记录日志要先做一个判断

为什么Log记录日志要先做一个判断了?如下。

   if (logger.isErrorEnabled()){
        logger.error(msg,e);
    }
    
 还有就是logger.isDebugEnabled和logger.isInfoEnable 等等?   
巴扎黑巴扎黑2742 Il y a quelques jours458

répondre à tous(1)je répondrai

  • 迷茫

    迷茫2017-04-18 10:57:29

    Vous comprendrez en passant à l'exemple suivant.

    if (log.isDebugEnabled()) {
        log.debug("log " + param1 + " ...");
    }

    Dans de nombreux cas, certaines informations sur les paramètres seront enregistrées lors de l'enregistrement des journaux. Lors de l'utilisation de jcl comme interface de journalisation, il est inévitable d'épisser les chaînes, mais les journaux ont des niveaux différents (level). exécutés en ligne. Les journaux à tous les niveaux de journalisation ne seront pas enregistrés.

    Si vous n'augmentez pas le jugement du niveau de journalisation lors de l'utilisation de jcl. Utiliser log.debug("log " + param1 + " ..."); directement de cette manière générera beaucoup d'objets String inutiles. Ceux-ci String n'auront en fait aucun effet et perdront du temps d'exécution. En même temps, gc devra également recycler un grand nombre de ces déchets. objets. Ceci utilise jclLa raison pour laquelle le jugement doit être ajouté.


    Bien sûr, nous pouvons désormais utiliser directement slf4j pour utiliser des espaces réservés afin de réduire ce if jugement. Tel que log.debug("log {} ...", param1)
    slf4j

    répondre
    0
  • Annulerrépondre