日志self4j、log4j和logback

标签:

本文出自jvm123.com-java技术分享站:http://jvm123.com/2020/03/self4j-log4j-logback.html

应用中使用日志框架 SLF4J 中的 API,不直接使用日志系统(Log4j、Logback)中的 API ,有利于维护和各个类的日志处理方式统一。示例 如下:

   import org.slf4j.Logger;
   import org.slf4j.LoggerFactory;
  
   public class Wombat {
  
     final static Logger logger = LoggerFactory.getLogger(Wombat.class);
     Integer t;
     Integer oldT;
  
     public void setTemperature(Integer temperature) {
       oldT = t;
       t = temperature;
       logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT);
       if(temperature.intValue() > 50) {
         logger.info("Temperature has risen above 50 degrees.");
       }
     }
   }

输出日志信息不要进行字符串拼接,应该使用占位符,因为java8中 String 字符串的拼接会使用 StringBuilder 的 append()方法,有一定的性能损耗。使用占位符 仅是替换动作,可以有效提升性能。如下:

logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT);

异常信息应该包括:案发现场信息和异常堆栈信息,切勿忘记打印异常堆栈信息。 如下:

logger.error("提示信息+各类参数或者对象+" + e.getMessage(), e);

发表评论