Java中slf4j日志使用_java的日志记录工具 slf4j的使用
SLF4J是Simple Logging System for Java的缩写
SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现,抽象了各种日志框架例如Logback、Log4j、Commons-logging和JDK自带的logging实现接口。它使得用户可以在部署时使用自己想要的日志框架。SLF4J是轻量级的,在性能方面几乎是零消耗的。
SLF4J没有替代任何日志框架,它仅仅是标准日志框架的外观模式。如果在类路径下除了SLF4J再没有任何日志框架,那么默认状态是在控制台输出日志。
下载SLF4J的API
通过这个链接下载:
http://www.slf4j.org/download.html
SLF4J API用法
1. 从org.slf4j包导入Logger和LoggerFactory
importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;
2. 声明日志类
privatefinalLogger logger = LoggerFactory.getLogger(LoggingSample.class);
3. 使用debug、warn、info、error方法并跟踪适合的参数。
所有的方法默认都使用字符串作为输入。
logger.info("This is sample info statement");
SLF4J结合Logback
在pom.xml包含下面的依赖:它会自动包含所有的依赖包logback-core、slf4j-api……
ch.qos.logback
logback-classic
1.0.7
SLF4J能用于现有的日志框架如Log4j、Commons-logging、java.util.logging(JUL)。
SLF4J结合Log4j
在pom.xml包含下面的依赖
org.slf4j
slf4j-log4j12
1.7.2
SLF4J结合JUL (java.util.logging)
在pom.xml包含下面的依赖
org.slf4j
slf4j-jdk14
1.7.2
下边一段程序是经典的使用slf4j的方法.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Wombat {
final Logger logger = LoggerFactory.getLogger(Wombat.class);
Integer t;
Integer oldT;
public void setTemperature(Integer temperature) {
oldT = t;
t = temperature;
logger.error("Temperature set to {}. Old temperature was {}.", t, oldT);
if (temperature.intValue() > 50) {
logger.info("Temperature has risen above 50 degrees.");
}
}
}
public static void main(String[] args) {
Wombat wombat = new Wombat();
wombat.setTemperature(1);
wombat.setTemperature(55);
}
}
下边介绍一下运行上边程序的过程。
1,编译上边的程序,需要classpath中加入slf4j-api-1.4.1.jar文件
2,运行时,需要classpath中加上slf4j-simple-1.4.1.jar
运行得到结果:
----------------------------
0 [main] ERROR Wombat - Temperature set to 1. Old temperature was null.
0 [main] ERROR Wombat - Temperature set to 55. Old temperature was 1.
0 [main] INFO Wombat - Temperature has risen above 50 degrees.
这个是simple log风格,
3,切换:如果想切换到jdk14的log的风格,只需要把slf4j-simple-1.4.1.jar 从classpath中移除,同时classpath中加入slj4j-jdk14-1.4.1.jar 这时的运行结果: --------------------------------------------------- 2007-7-9 10:40:15 Wombat setTemperature 严重: Temperature set to 1. Old temperature was null. 2007-7-9 10:40:16 Wombat setTemperature 严重: Temperature set to 55. Old temperature was 1. 2007-7-9 10:40:16 Wombat setTemperature 信息: Temperature has risen above 50 degrees. 已经变成jdk14的log风格了。 4,再次切换到log4j 同样移除slj4j-jdk14-1.4.1.jar,加入slf4j-log4j12-1.4.1.jar,同时加入log4j-1.2.x.jar 加入log4j.properties。得到显示结果: --------------------------------------- 10:42:27,328 ERROR Wombat: Temperature set to 1. Old temperature was null. 10:42:27,328 ERROR Wombat: Temperature set to 55. Old temperature was 1. 10:42:27,328 INFO Wombat: Temperature has risen above 50 degrees. 在不同的风格中切换只需要在部署期切换类库就可以了,和开发时无关。
Java中slf4j日志使用_java的日志记录工具 slf4j的使用相关推荐
- 12月29日--Java中有关类与对象的学习记录
1.12月29日第一课记录 Java中有关类与对象的学习记录 一.基本概念部分 1.类:具有相同.相似的属性.特征.行为方式以及功能的一类事物的总称 (举例:一类用户,如淘宝用户) 类是对象的模板 是 ...
- java中的工厂模式_java中工厂模式详解和使用方法
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻 ...
- java中集合怎么定义_Java集合系列(一):集合的定义及分类
1. 集合的定义 什么是集合呢? 定义:集合是一个存放对象的引用的容器. 在Java中,集合位于java.util包下. 2. 集合和数组的区别(面试常问) 提到容器,就会想起数组,那么集合和数组的区 ...
- java中注解的使用_java中注解的使用
使用过ssh框架的人一定也使用过注解,尤其是在spring框架中,注解可谓是spring容器和AOP编程的重要环节.注解就是用于修饰类.全局变量.方法.参数或局部变量的接口,java中规定,注解的使用 ...
- java中组件与容器_java中的容器组件和非容器组件
1.java使用到的图形类主要在java.awt 与javax.swing包中. 2.java.awt 与 javax.swing包的区别: ① java.awt中使用的图形类都是依赖于系统的图形库的 ...
- java中事件监听_Java中的事件监听机制
鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动 ...
- java中是否支持多重继承_java支持多重继承吗 JAVA特性面试题:
1.简要介绍java程序的健壮性. 答:JAVA程序会在编译和运行的时候自动的检测可能出现的错误,而且它是一种强类型语言,对于类型的检查很严格,而且它的垃圾回收机制也有效的避免了内存的泄漏. 2.为什 ...
- java中飞飞检查异常_Java复习6异常处理
Java复习6.异常处理 20131005 前言: Java中的异常处理机制是非常强大的,相比C++ 来说,更加系统.但是我们开发人员没有很好的使用这一点.一些小的程序是没有什么问题的,但是对于大型项 ...
- java中标签怎么用_Java中标签的使用
很多程序设计语言中有goto语句,goto语句的使用,使的程序变得难以读懂,尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用:Java没有goto.然而,在break和continue ...
最新文章
- YOLO v1到YOLO v4(上)
- Angular响应式表单及表单验证
- Android在eoe分享一篇推荐开发组件或者框架的文章
- 为了杀蚊子,这位博士用树莓派DIY了一把激光枪!网友:伤到人怎么办?
- txt文件分解为固定条数的文件
- 一个表格中文字怎么换行_Excel表格中怎样快速将阿拉伯数字转化为大写文字?这样操作一键完成...
- python中while。。。。else的用法
- WIN7的便签使用快捷键
- VC2015搭建OpenCV环境(超详细教程)
- 【Scratch-声音模块】音量控制
- android第三方登录appid,Android 第三方登录之支付宝登录
- mocc javascript
- 用verilog编写按键消抖代码
- stata学习笔记|离散被解释变量
- 苹果终止位置共享无法连接服务器,苹果发布临时解决方案指导用户处理macOS无法共享访问Windows的问题...
- CorelDRAWX4的C++插件开发(四十三)VBA的错误返回机制
- 从数学和编程的角度去看遥感影像和处理
- 马化腾微信朋友圈惋惜小黄车 网友们狂赞 并替Pony搞起情怀大接龙
- Blender基础:多边形建模中F命令和J命令的区别
- vtk 显示效果设置