Springboot日志相关

市场上的日志框架

日志门面(日志抽象层)日志实现
JCL(Jakarta Commons Logging)、SLF4j(Simple Logging Facade for Java)、jboss-loggingLog4j、JUL(Java.util.logging)、Log4j2、Logback
  • Log4j、Logback 、SLF4j都是出自同一个人的手,Logback时Log4j的升级版
  • 建议使用SLF4j+Logback的组合作为日志框架
  • Springboot底层使用的是SLF4j+Logback的组合

SLF4j

  • 开发的时候应该调用日志的抽象层(SLF4j),不应该使用日志的实现层(Logback),当然也可以使用其他实现层,SLF4j与其他的实现层的关系在slf4j的官网(http://slf4j.org/manual.html)上有一张图
    在这里插入图片描述
  • 使用
public class SLF4jTest {
    public static void main(String[] args){
        Logger logger = LoggerFactory.getLogger(SLF4jTest.class);
        logger.info("测试------");
    }
}

同一个系统统一日志框架

在一个系统中,可以能引入很多的jar包,如:mybatis、Spring等等,但是他们底层使用的日志框架不一样,这个要怎么解决呢?
在sfl4j的官网(http://slf4j.org/legacy.html)上也能找到解决方案:在这里插入图片描述
我们只要使用对应的日志jar包替换掉其他框架的日志jar包,就可以达到这个效果,打个比方:
如果mybatis中使用的是Commons logging API,我们要替换掉这个jar包,首先就得排除掉这个jar包,然后引入jcl-over-slf4j.jar的包,其实jcl-over-slf4j中会包含Commons logging API中的所有类以及方法,只是实现不一样

sfl4j Springboot配置

  • logging.level.com.example=info
    com.example包下的,只要是info级别以上的日志都输出
  • logging.path=/var/log
    指定日志输出在/var/log的目录下
  • logging.file=D:\my.log
    指定日志输出到my.log的日志文件下
  • logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
    控制台输出的日志的格式
  • logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
    指定文件中输出的日志的格式

替换日志框架

先看一张图(通过pom文件右键 —> Diagrams —> Show Dependencies查看)
在这里插入图片描述
这张图是我现在的Springboot的依赖图,然后我要怎么做呢?
分析:

  • 这里是用slf4j作为抽象层,logback作为实现层 (可以看前面的图片确定)
  • 这里将log4j的api通过log4j-to-slf4j封装成了slf4j
    如果要将logback替换掉,那就需要先将logback的依赖移除,然后依然使用slf4j作为抽象层的话,就不要移除slf4j,然后引入对应的中间包
    ,这样即可完成替换
适用人群 Java开发人员,Vue开发人员,前后端分离开发人员,权限管理和配置开发人员 课程概述 【讲师介绍】 讲师职称:               现某知名大型互联网公司资深架构师,技术总监,职业规划师,首席面试官,曾在某上市培训机构,高校任教多年。             Array(Array老师)10多年互联网公司实战经验,知名的大型互联网公司的架构师,高管等职,在企业长期从事于技术的源码阅读和新技术的研究;擅长于职业规划,面试辅导,从事面试官多年;擅长于JAVA,人工智能AI应用,Xmind等等,曾服役于国内某上市培训机构数年,独特的培训思路,培训体系,培训方式,实践的职场技能,职场现状,职场晋升等让你快速适应企业职场的所需。  【课程介绍】 技术选型 开发环境:Eclipse/Idea ,JDK 1.8以上  后端技术 核心框架:SpringBoot2.x框架系列(同样适用Springcloud F版本以后的版本),如下(节选):     持久层框架:MyBatis 3.x + Mybatis-plus 3.x 日志管理:SLF4J 1.7 + Log4j2 2.7 工具类:Apache Commons、Jackson 、fastjson、Gson 权限验证 前端技术   Vue   Vue-cli ElementUI ---https://element.eleme.io/ JSX (JavaScript Xml) 前台的权限验证和路由设置 开发模式        前后端分离的开发 数据库        Mysql5 IDE     Intellij Idea
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页