java开发——日志模块

日志功能实现流程图:

slf4j只是一个门面(facet),它不包含具体的实现,而是将一些log4j,java.logging等实现包装成统一的接口。借用上图展示了常用日志文件的关系:

通过上面的图,可以简单的理清关系!
commons-logging和slf4j都是日志的接口,供用户使用,而没有提供实现!
log4j,logback等等才是日志的真正实现。

当我们调用接口时,接口的工厂会自动寻找恰当的实现,返回一个实现的实例给我服务。这些过程都是透明化的,用户不需要进行任何操作!

这里有个小故事,当年Apache说服 log4j以及其他的日志来按照commons-logging的标准编写,但是由于commons-logging的类加载有点问题,实现起来也不友好,因此log4j的作者就创作了slf4j,也因此而与commons-logging两分天下。至于到底使用哪个,由用户来决定吧。
这样,slf4j出现了,它通过简单的实现就能找到符合自己接口的实现类,如果不是满足自己标准的日志,可以通过一些中间实现比如上面的slf4j-log4j12.jar来进行适配。

slf4j+logback方式的具体实现步骤如下:

第一步:下载三个架包,下载位置:链接: https://pan.baidu.com/s/1oizlQ2wfqkHAJM7Rk6Q5yQ 密码: a6uf

第二步:引入架包(logback-classic_1.0.1.jar,logback-core-1.0.1.jar,slf4j-api-1.6.4.jar),其中这两个架包   的版本号必一致,否则可能出现错误,这个架包没有特殊要求;

项目结构图:

第三步:编写代码测试

package com.esage.Logger;

import java.util.Date;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LoggerTest {
 private static final Logger logger = LoggerFactory.getLogger(LoggerTest.class.getName());

 public static void main(String[] args) {
  logger.info("Current Time: {}", System.currentTimeMillis());
  logger.warn("警告信息:{}", new Date().toString()jie
  
 }

}

测试结果:

猜你喜欢

转载自blog.csdn.net/zhangxuyan123/article/details/81184546
今日推荐