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 + ".");

  

时间: 2024-11-09 13:12:34

slf4j使用(二)的相关文章

slf4j与logback的结合使用

参考:http://my.oschina.net/ydsakyclguozi/blog/412240 一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和logback-access.logback-core是其它两个模块的基础模块.logback-classic是log4j的一个 改良版本.此外logback-classic完整实现SLF4J API使你可以很方便地更换

hadoop编程小技巧(9)---二次排序(值排序)

代码测试环境:Hadoop2.4 应用场景:在Reducer端一般是key排序,而没有value排序,如果想对value进行排序,则可以使用此技巧. 应用实例描述: 比如针对下面的数据: a,5 b,7 c,2 c,9 a,3 a,1 b,10 b,3 c,1 如果使用一般的MR的话,其输出可能是这样的: a 1 a 3 a 5 b 3 b 10 b 7 c 1 c 9 c 2 从数据中可以看到其键是排序的,但是其值不是.通过此篇介绍的技巧可以做到下面的输出: a 1 a 3 a 5 b 3 b

mybatis 3.2.8 + log4j2.0.2 控制台输出sql语句

mybatis3.2.7有一个bug,使用log4j2 (2.0.2)版本时,会找不到类 ,导致启动失败,详见 https://github.com/mybatis/mybatis-3/issues/235 但没过多久 , 3.2.8就已经修复了这个bug , 最新的mybatis3.2.8下载地址为: https://github.com/mybatis/mybatis-3/releases mybatis 3.2.8 整合 log4j2.0.2并不复杂 , 如果用spring-mvc做为we

logback使用笔记

三大主要元素 looger:记录日志 appender:输出目的地 layout:输出格式 必要步骤: 一.引入包: import org.slf4j.Logger; import org.slf4j.LoggerFactory; 二.获取Logger实例 private Logger logger = LoggerFactory.getLogger(this.getClass()); PS.Logback不限制logger名,你可以随意命名logger.然而,目前已知最好的策略是以logger

Spring Boot之logback日志最佳实践

一.Spring Boot日志介绍 Spring Boot对所有内部日志记录使用了Commons Logging,但是底层日志实现是开放的.为Java Util日志记录.Log4J2和Logback提供了缺省配置.在每种情况下,日志记录器都预先配置为使用控制台输出和可选的文件输出. 默认情况下,如果使用Spring Boot的"Starters"坐标,则默认使用Logback进行日志记录.还包括适当的Logback路由,以确保使用Java Util日志记录.Commons日志记录.Lo

Java 日志体系(二)jcl 和 slf4j

Java 日志体系(二)jcl 和 slf4j <java 日志体系(一)统一日志>:https://www.cnblogs.com/binarylei/p/9828166.html <Java 日志体系(二)jcl 和 slf4j>:https://www.cnblogs.com/binarylei/p/10781582.html 前面介绍了 jdk 自带的 logging.log4j1.log4j2.logback 等实际的日志框架.对于开发者而言,每种日志都有不同的写法.如果

日志之slf4j和logback日志系统(二)

这篇文章我们讲一下,如何使用slf4j和logback组合来搭建一套日志系统. 介绍 如果我们的系统十个新系统,也就是之前没有引入其他的日志工具,那么只需要引入 依赖引入 logback配置文件 业务中使用 学习链接 slf4j源码剖析 原文地址:https://www.cnblogs.com/htyj/p/12023541.html

maven(二) maven项目构建ssh工程(父工程与子模块的拆分与聚合)

前一节我们明白了maven是个什么玩意,这一节就来讲讲他的一个重要的应用场景,也就是通过maven将一个ssh项目分割为不同的几个部分独立开发,很重要,加油 --WH 一.maven父工程与子模块的拆分与聚合原理 问题描述:将ssh工程拆分为多个模块开发 1.1.拆分原理 创建一个maven project(pom),然后在创建三个子模块(maven moudule),其中三个子模块,分别为 dao.service.web,也就是将三层的内容分别独立为一个项目,进一步将耦合性降低,其中如何将他们

SpringBoot - 二零一七0421小记

一.SpringBoot使用起来比起SpringMVC更便捷,在注解上的小变化,我记录了下面几个: @Controller + @ResponseBody = SpringMVC中用@RestController来代替前面两个注解,通过这个注解,可以将所有的前端http请求放入SpringBoot的Controller容器中,并返回json格式的数据给前端 @RequestMapping(value={"/hello","/hi"},method=RequestMe