码迷,mamicode.com
首页 > 其他好文 > 详细

slf4j使用(二)

时间:2014-05-16 07:30:03      阅读:466      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   c   java   

一、典型使用模式

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

bubuko.com,布布扣
 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: } 
bubuko.com,布布扣

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

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

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

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

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

bubuko.com,布布扣
if(logger.isDebugEnabled())
    logger.debug("Temperature set to " + t + ". Old temperature was " + oldT + ".");
bubuko.com,布布扣

 

  

slf4j使用(二),布布扣,bubuko.com

slf4j使用(二)

标签:style   blog   class   code   c   java   

原文地址:http://www.cnblogs.com/winson/p/3726081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!