Java日志系统学习之slf4j!
大大小小的项目或者框架用到都有用到日志。但自己都是一知半解。
今天又要配置框架,下下决心好好学习总结下!
1. slf4j。
http://www.slf4j.org/
直接上官网直接学习。
上网查各种资料不是过时了,就是你抄我,我抄你。看起来没什么意思。
直接看用户手册。
1.1 最简单的使用方法 。在类路径上添加slf4j-api.jar和slf4j-simple.jar
package edu.guet.log;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class HelloLog {private static final Logger log = LoggerFactory.getLogger(HelloLog.class);public static void main(String[] args) {log.info("hello,world");}}/***输出结果:0 [main] INFO edu.guet.log.HelloLog - hello,world**/package edu.guet.log;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class TestLogPlaceHolder {private static final Logger log = LoggerFactory.getLogger(TestLogPlaceHolder.class);private String name;private int id;public static void main(String[] args) {TestLogPlaceHolder holder = new TestLogPlaceHolder();holder.setName("banxi");}public void setName(String name) {String oldName = name;this.name = name;log.debug("name set to {},old name is {}",name,oldName);log.warn("name set to {},old name is {}",name,oldName);log.error("name set to {},old name is {}",name,oldName);if(name.equals("banxi")){log.info("welcome,{} is coming",name);}}}/***日志输入结果:1 [main] WARN edu.guet.log.TestLogPlaceHolder - name set to banxi,old name is banxi2 [main] ERROR edu.guet.log.TestLogPlaceHolder - name set to banxi,old name is banxi2 [main] INFO edu.guet.log.TestLogPlaceHolder - welcome,banxi is coming***/// 使用点位符的情况:long beginTime = System.nanoTime();log.debug("name set to {},old name is {}",name,oldName);long endTime = System.nanoTime();log.info("placeholder spend time {}",(endTime - beginTime));//输入使用时间://2 [main] INFO edu.guet.log.TestLogPlaceHolder - placeholder spend time 8334// 不使用点位符的情况long beginTime = System.nanoTime();log.debug("name set to"+name+",old name is"+oldName);long endTime = System.nanoTime();log.info("placeholder spend time {}",(endTime - beginTime));// 日志输出如下:1 [main] INFO edu.guet.log.TestLogPlaceHolder - placeholder spend time 42742// 这一次先是不使用点位符的代码long beginTime = System.nanoTime();log.info("name set to"+name+",old name is"+oldName);long endTime = System.nanoTime();log.info("placeholder spend time {}",(endTime - beginTime));// 日志输出如下:0 [main] INFO edu.guet.log.TestLogPlaceHolder - name set tobanxi,old name isbanxi3 [main] INFO edu.guet.log.TestLogPlaceHolder - placeholder spend time 394765// 使用点位符的情况:long beginTime = System.nanoTime();log.info("name set to{},old name is{}",name,oldName);long endTime = System.nanoTime();log.info("placeholder spend time {}",(endTime - beginTime));2 [main] INFO edu.guet.log.TestLogPlaceHolder - name set tobanxi,old name isbanxi3 [main] INFO edu.guet.log.TestLogPlaceHolder - placeholder spend time 2342676//在org.springframework.web.servlet.DispatcherServlet类导入类。import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;