日志框架

日志门面(接口,日志抽象层 ) 日志实现
JCL(Jakarta Commons Logging)、slf4j(Simple Logging Facade for Java)、jboss-logging log4j、JUL(java.util.logging)、log4j2、Logback
  • 日志门面:slf4j
  • 日志实现:Logback

    SpringBoot选用的是slf4j和Logback

slf4j的使用

  • 如何在系统中使用slf4j:

    1.日志记录方法的调用,不应该调用日志实现类,应该调用日志抽象层里面的方法。给系统导入slf4j的jar和Logback的实现jar。

    2.每一个日志的实现框架都有自己的配置文件。使用slf4j以后,配置文件还是使用日志实现框架的配置文件
  • 问题:使用slf4j+logback需要统一转换日志记录,别的框架使用其它日志框架的需要一起使用slf4j进行输出:

    1.将系统中的其他框架日志先替换出去,

    2.用面向slf4j的jar替换原有的日志框架,

    3.导入slf4j的jar和Logback的实现jar。

SpringBoot日志关系

  • SpringBoot底层也是使用slf4j+logback的方式进行日志记录
  • SpringBoot将其它日志都替换成slf4j
  • 如果需要引入其它框架,一定要把这个框架的默认日志框架依赖移除。

    SpringBoot能自动适配所有的日志,而且底层使用的是slf4j+logback的方式记录日志,引入其它框架的时候,只需要将这个框架依赖的日志框架排除掉即可。

日志使用

  • 默认配置
logging.file logging.path Example Description
none (none) 只在控制台输出
指定文件名 (none) my.log 输出日志到my.log文件
(none) 指定目录 /var/log 输出到指定目录的spring.log文件中
  • 指定配置

    给类路径下放上每个日志框架指定的配置文件,SpringBoot就不使用本身默认的配置。
Logging System Customization
Logback logback-spring.xml, logback-spring.groovy, logback.xml or logback.groovy
Log4j2 log4j2-spring.xml or log4j2.xml
JDK(Java Util Logging) logging.properties
  • logback.xml:会直接被日志框架识别加载
  • logback-spring.xml (推荐):日志框架不能直接加载日志配置项,由springBoot解析日志配置只使用SpringBoot高级功能SpringProfile,就可以通过
<springProfile name="dev"></springProfile>

设置指定某段配置只在某个环境下生效

切换日志框架

  • 可以按照slf4j的日志适配图进行相关的切换-替换加引入
  • 切换log4j2:由于SpringBoot底层有log4j2的框架,只要在依赖中排出之前的starter-logging依赖。

微服务架构Day02-SpringBoot日志slf4j的更多相关文章

  1. Aibabelx-shop 大型微服务架构系列实战之技术选型

    一.本项目涉及编程语言java,scala,python,涉及的技术如下: 1.微服务架构: springboot springcloud mybatisplus shiro 2.全文检索技术 sol ...

  2. 使用Redis为注册中心的Dubbo微服务架构(基于SpringBoot)

    title: 使用Redis为注册中心的Dubbo微服务架构(基于SpringBoot) date: 2019-07-30 14:06:29 categories: 架构 author: mrzhou ...

  3. SpringBoot微服务架构下的MVC模型总结

    SpringBoot微服务架构下的MVC模型产生的原因: 微服务概念改变着软件开发领域,传统的开源框架结构开发,由于其繁琐的配置流程 , 复杂的设置行为,为项目的开发增加了繁重的工作量,微服务致力于解 ...

  4. SpringCloud SpringBoot 前后端分离企业级微服务架构源码赠送

    基于SpringBoot2.x.SpringCloud和SpringCloudAlibaba并采用前后端分离的企业级微服务敏捷开发系统架构.并引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手 ...

  5. spring-boot+spring-cloud+maven-module 一个 maven多模块的微服务架构模版

    spring-boot-cloud-module spring-boot+spring-cloud+maven-module 一个 maven多模块的微服务架构模版. 新手上路的绝佳模版,只有必要的配 ...

  6. 微服务架构 | 10.3 使用 Zipkin 可视化日志追踪

    目录 前言 1. Zipkin 基础知识 1.1 Zipkin 链路监控的原理 2. 下载 Zipkin 服务器 2.1 下载 zipkin-server-2.12.9-exec.jar 包 2.2 ...

  7. 基于 Docker 的微服务架构实践

    本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...

  8. 微服务架构实践 - 你只懂docker与spring boot就够了吗?

    微服务架构实践 - 你只懂docker与spring boot就够了吗? 作者 浮云发发 已关注 2017.02.27 02:50* 字数 2613 阅读 2583评论 6喜欢 35赞赏 2 微服务并 ...

  9. 【微服务架构】SpringCloud组件和概念介绍(一)

    一:什么是微服务(Microservice) 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及 ...

  10. springcloud与docker微服务架构实战--笔记

    看了<微服务那些事>之后,Spring boot和Spring Cloud的关系理清楚了,Spring cloud各个模块的作用也了解了. 但是,Spring cloud 与Docker的 ...

随机推荐

  1. ctfhub技能树—RCE—综合过滤练习

    打开靶机 查看页面信息 查看源码可以发现这一次过滤了很多东西,查看当前目录信息 查询到%0a为换行符,可以利用这个url编码进行命令注入,开始尝试 http://challenge-2a4584dab ...

  2. Pytorch 中张量的理解

    张量是一棵树 长久以来,张量和其中维度的概念把我搞的晕头转向. 一维的张量是数组,二维的张量是矩阵,这也很有道理. 但是给一个二维张量,让我算出它每一行的和,应该用 sum(dim=0) 还是 sum ...

  3. 网易新闻App架构重构实践:DDD正走向流行

    网易新闻App架构重构实践:DDD正走向流行 https://mp.weixin.qq.com/s/FdwrT_xn3CQqpWoRVBttvQ 小智 InfoQ 2020-05-14 作者 | 小智 ...

  4. k8s之集群管理

    导读 经过前面k8s系列的文章,这一系列已经基本完成,现在就用几篇文章说一下日常的集群维护. 目录 更新资源对象的Label Namespace:集群环境共享与隔离 部署集群监控 部署Web UI管理 ...

  5. hasOwnProperty和 ... in ...的区别

    hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键).https://developer.mozilla.org/zh-CN/docs ...

  6. Java面试,面试题

    Java面试,面试题 HashMap,HashTable,ConcurrentHash的共同点和区别 HashMap HashTable ConcurrentHashMap ArrayList和Lin ...

  7. Spark获取DataFrame中列的方式--col,$,column,apply

    Spark获取DataFrame中列的方式--col,$,column,apply 1.官方说明 2.使用时涉及到的的包 3.Demo 原文作者:大葱拌豆腐 原文地址:Spark获取DataFrame ...

  8. EasyUI动态显示后台数据库中的数据

    最近在完成一个项目,采用SSM框架搭建完成,前端使用EasyUI搭建页面: 其中涉及到一个查询显示功能:查询数据库中的数据,动态显示在页面之中,刚开始这部分十分有疑问,所以虚心向同学学习,现总结至博客 ...

  9. HBase,以及GeoMesa设计基于HBase的设计分析,从数据模型到典型查询场景,最后进行RowKey设计

    GeoMesa设计基于HBase的设计分析,从数据模型到典型查询场景,最后进行RowKey设计 一.HBase 基本概念 理解KeyValue KeyValue多版本 列定义(1) 列定义(2) Co ...

  10. 5. Linux文件目录管理和打包压缩与搜索命令

    1.touch:用于创建空白文件或设置文件的时间 举例:使用ls 命令查看一个文件的修改时间,然后修改这个文件,最后再通过touch命令把修改后的文件时间设置成修改之前的时间(很多黑客就是这样做的): ...