java sl4j 日志_java日志:slf4j

一、设计模式之门面模式(facade)

1. 概念:外部与子系统的通信,必须通过统一的外观对象(facade)进行,使得子系统更易于使用

2. 模式图

3. 核心点:

a. 知道所有子角色的功能和责任

b. 将客户端发来的请求,委派到子系统中,门面对象没有实际的业务逻辑

c. 不参与子系统内业务逻辑的实现

二、slf4j概述

1. slf4j是门面模式的典型应用,因为一个系统中可能有其他jar包,使用了logback, log4j, slf4j等不同的日志系统,需要引入一个适配层去决定使用哪种日志系统

2. slf4j只是一个日志标准,并不是日志系统的具体实现:提供日志接口、提供获取具体日志对象的方法

3. slf4j的具体实现:slf4j-simple, logback, slf4j-log4j12

三、应用:使用slf4j+logback

1. 添加依赖

//slf4j

org.slf4j

slf4j-api

1.7.25

//logback实现slf4j

ch.qos.logback

logback-classic

1.2.3

2. 添加logback配置文件,可以指定控制台和文件进行日志输出

${COMMON_PATTERN}

logs/myproject.log

${COMMON_PATTERN}

logs/myproject.%d{yyyy-MM-dd}.log.zip

7

true

logs/error.log

${COMMON_PATTERN}

logs/error.%d{yyyy-MM-dd}.log.zip

7

true

ERROR

512

3. 在代码中使用

Logger logger = LoggerFactory.getLogger(Object.class);

logger.info("info");

logger.warn("warn");

四、slf4j实现原理

1. Logger logger = LoggerFactory.getLogger(Object.class); 根据日志工厂获得具体的日志类

2.getLogger的时候会去classpath下找STATIC_LOGGER_BINDER_PATH,即”org/slf4j/impl/StaticLoggerBinder.class”,每一个日志实现的jar包里都有这个类

3. 存在多个日志实现,会有警告产生,并选择其中一个实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值