zoukankan      html  css  js  c++  java
  • slf4j使用(二)

    一、典型使用模式

      从上一篇介绍slf4j的文章中我们知道,使用slf4j,只需使用slf4j-api包里的接口。下面代码演示了它的经典使用模式:

     1: import org.slf4j.Logger;
     2: import org.slf4j.LoggerFactory;
     3: 
     4: public class Wombat {
     5: 
     6:   final Logger logger = LoggerFactory.getLogger(Wombat.class);
     7:   Integer t;
     8:   Integer oldT;
     9:
    10:   public void setTemperature(Integer temperature) {
    11:    
    12:     oldT = t;        
    13:     t = temperature;
    14:
    15:     logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT);
    16:
    17:     if(temperature.intValue() > 50) {
    18:       logger.info("Temperature has risen above 50 degrees.");
    19:     }
    20:   }
    21: } 

    说明:(1)第六行声明的Logger,表示Logger是类的实例成员。另一种惯常的用法是加上static,使它变为类的静态成员,如:

        final static Logger logger=LoggerFactory.getLogger(Wombat.calss);

        是使用实例成员,还是静态成员,这个由用户自己做决定,两种方式各有其优缺点。

        (2)第15行使用了参数化的日志消息,我们推荐使用这种方法,因为在这类方法里都加了一个判断,如上例就加了logger.isDebugEnabled()判断,这样如果debug消息级别没有启用,那么就不会去根据消息参数去构造一个实际的消息,这样可以提供日志的效率。

      当然如果不使用参数化日志消息,而是自己操作字符串拼接消息的话,为了提高效率,一种比较笨的方法就是在debug消息之前,自己也加上isDebugEnabled()判断,如上例可以改成:

    if(logger.isDebugEnabled())
        logger.debug("Temperature set to " + t + ". Old temperature was " + oldT + ".");

      

    
    
  • 相关阅读:
    【转载】MongoDB 数据库的备份与恢复
    【转载】Vim命令合集
    【转载】Mac 让 iTerm2 记住用户名密码
    CSS 实现单行、多行文本溢出显示省略号
    【转载】如何在Vue2中实现组件props双向绑定
    JavaScript 获取当日在今年第几周
    CentOS 7 安装配置FTP服务器(vsftpd)
    CentOS 7 防火墙(firewall)常用命令
    Vs Code 之 实现右键打开文件夹
    git 报错
  • 原文地址:https://www.cnblogs.com/winson/p/3726081.html
Copyright © 2011-2022 走看看