SpringNBoot日志配置

市面上的日志框架

日志门面 (日志的抽象层)日志门面 (日志的抽象层)
JCL(Jakarta Commons Logging
SLF4j(Simple Logging Facade for Java)
jboss-loggi
JUL(java.util.logging)
Log4j
Log4j2
Logback

左边选一个门面(抽象层);右边选一个实现

SLF4J使用

系统中使用SLF4j

  • 以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法;
  • 给系统导入slf4j和logback的实现jar
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;public class HelloWorld {public static void main(String[] args) {Logger logger = LoggerFactory.getLogger(HelloWorld.class);logger.info("Hello World");}
    }

每个日志的框架都有自己的配置文件。使用slf4j以后,配置文件还是做成日志实现框架自己本身的配置文件

日志兼容问题 

  • 项目依赖的框架使用不同的日志
  • 当项目使用多种日志API时,可以同一适配到SLF4J,中间使用SLF4J或者第三方提供的日志适配器,从而适配到SLF4J,SLF4J在底层享用的一个日志框架来进行日志系统的实现,从而达到多种日志的统一实现。

如何统一日志,将所有的日志都统一到SLF4J

  1. 将系统中其他日志框架先排除出去;
  2. 用中间包来替换原有的日志框架(适配器的类名和包名与替换的被日志框架一致);
  3. 我们导入slf4j其他的实现

底层依赖关系

  1. SpringBoot底层也是使用slf4J和logback的方式进行日志记录
  2. SpringBoot也把其他的日志替换成了slf4j
  3. 当我们引入其他框架的时候,需要删除这个框架依赖的日志框架

日志的使用

默认配置

    //记录器Logger logger = LoggerFactory.getLogger(getClass());@Testpublic void contextLoads() {//System.out.println();//日志的级别;//由低到高   trace<debug<info<warn<error//可以调整输出的日志级别;日志就只会在这个级别以以后的高级别生效logger.trace("这是trace日志...");logger.debug("这是debug日志...");//SpringBoot默认给我们使用的是info级别的,没有指定级别的就用SpringBoot默认规定的级别;root级别logger.info("这是info日志...");logger.warn("这是warn日志...");logger.error("这是error日志...");}
日志输出格式:%d表示日期时间,%thread表示线程名,%-5level:级别从左显示5个字符宽度%logger{50} 表示logger名字最长50个字符,否则按照句点分割。 %msg:日志消息,%n是换行符-->%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n

SpringBoot修改日志的默认设置

# 也可以指定一个包路径 logging.level.com.xxx=error
logging.level.root=error#logging.path=
# 不指定路径在当前项目下生成springboot.log日志
# 可以指定完整的路径;
#logging.file=G:/springboot.log# 在当前磁盘的根路径下创建spring文件夹和里面的log文件夹;使用 spring.log 作为默认文件
logging.path=/spring/log#  在控制台输出的日志的格式
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n
# 指定文件中日志输出的格式
logging.pattern.file=%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} ==== %msg%n
logging.filelogging.pathExampleDescription
(none)(none) 只在控制台输出
指定文件名(none)my.log输出日志到my.log文件
(none)指定目录/var/log输出到指定目录的 spring.log 文件中

 指定配置

  • 给类路径下放上每个日志框架的自己的配置文件即可
  • SpringBoot就不需要使用其他配置了
  • logback.xml:直接被日志框架识别
  • logback-spring.xml:日志框架就不直接加载日志配置项,由SpringBoot解析日志配置,可以使用SpringBoot的高级Profile功能
  • 如果使用logback.xml作为日志的配置文件,还需要使用profile功能,否则会报错
Logging SystemCustomization
Logbacklogback-spring.xmllogback-spring.groovylogback.xml or logback.groovy
Log4j2log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging)logging.properties

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ffmpeg的内部Video Buffer管理和传送机制

本文主要介绍ffmpeg解码器内部管理Video Buffer的原理和过程&#xff0c;ffmpeg的Videobuffer为内部管理&#xff0c;其流程大致为&#xff1a;注册处理函数->帧级释放->帧级申请->清空。 1 注册get_buffer()和release_buffer() FFAPI_InitCodec() avcodec_alloc_c…

springBoot的模版引擎

模版引擎 常见的模版引擎有JSP、Velocity、Freemarker和Thymeleaf Thymeleaf模版 使用时需要把html页面放在classpath&#xff1a;/templates/文件夹下&#xff0c;thymeleaf就能自动渲染创建模版文件&#xff0c;并需要导入thymeleaf的名称空间 <html lang"en"…

FFmepg 多线程解码历程

FFmepg 多线程解码历程 - 1:validate_thread_parameters /** * Set the threading algorithms used.//设置线程的使用算法 * Threading requires more than one thread.//需要一个以上的线程 * Frame threading requires entire frames to be passed to the codec,//帧线程…

SpringMVC自动配置

springboot为SpringMVC配置了自动配置&#xff0c;以下是SpringBoot对SpringMVC的默认配置 org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration 自动配置在Spring的默认配置之上添加了以下功能 包含ContentNegotiatingViewResolver和BeanNameView…

做一名合格的生意人

偶然的成功&#xff0c;包含着某种必然的因素&#xff0c;那就是一个生意人本身的素质。作为一名现代生意人&#xff0c;要想使自己所从事的事业取得新的成功&#xff0c;就要加强自身的修养&#xff0c;不断掌握新知识&#xff0c;努力使自己成为“全才”。 □ 事业成功的十个…

restful风格的增删改查

注意 如果静态资源放到了静态资源文件夹下却无法访问&#xff0c;请检查一下是不是在自定义的配置类上加了EnableWebMvc注解templete文件夹不是静态资源的文件夹&#xff0c;默认是无法访问的&#xff0c;所以要添加视图映射 package cn.xxxxxx.hellospringbootweb.config;imp…

历史上最有影响力的10款开源项目

开源是大趋势&#xff0c;开源软件也在越来越多的出现在日常电脑桌面上&#xff0c;如Firefox浏览器、Ubuntu操作系统等。人们选择开源软件的原因&#xff0c;主要有低成本、安全无病毒侵害、更加透明和开放等。按照大多数的开源协议如GPL&#xff0c;开源软件允许自由分发。在…

SpringBoot默认的错误处理机制

错误处理机制&#xff1a; 访问一个不存在的页面时&#xff0c;或者程序抛出异常时 默认效果 浏览器返回一个错误的页面&#xff0c;注意查看浏览器发送请求的请求头可以使用专业的软件比如postman分析返回的json数据 springboot错误处理的自动配置信息 主要给日容器中注册…

GitHub政府用户破万:开源成重塑政府新手段

据GitHub官方博客介绍&#xff0c;目前GitHub上的各地政府用户数量已经达到1万个&#xff01; 2009年&#xff0c;纽约参议院正式入驻GitHub公开部分技术资料与文档&#xff0c;成为GitHub上的第一个政府组织。随后&#xff0c;美国华盛顿特区、迈阿密、芝加哥、纽约&#xff…

配置嵌入式Servlet容器

如何定制和修改Servlet容器的相关配置 修改定制和修改Servlet容器的相关配置 server.port8081 server.context-path/crudserver.tomcat.uri-encodingUTF-8//通用的Servlet容器设置 server.xxx //Tomcat的设置 server.tomcat.xxx 编写一个EmbeddedServletContainerCustomizer&…

云OS:Linux在桌面打翻身仗的机会?

不可否认&#xff0c;Chrome OS取得了惊人的增长。Chromebook自发行以来&#xff0c;迅速席卷全球&#xff0c;常年位居最畅销笔记本榜首。这款基于Linux的笔记本在合适时间提供了合适的解决方案。很多情况下&#xff0c;云不仅仅是一个可选项&#xff0c;而是一个最优选项。Li…

Docker容器基本使用

Dcoker Docker是一个开源的应用容器引擎&#xff0c;是一个轻量级别的容器技术Dcoker支持将软件编译成一个镜像&#xff1b;然后在镜像中对各种软件做好配置&#xff0c;再将镜像发布出去&#xff0c;供别人使用运行中的镜像称为容器&#xff0c;容器的启动是非常快速的核心概…

为什么35岁的C++依然能主导编程世界

早在1979年&#xff0c;Bjarne Stroustrup设计了C编程语言&#xff0c;并且C很快成为了无处不在的通用系统编程语言。现在尽管有Java、Javascript、Python、Go&#xff0c;甚至是苹果的Swift和它竞争&#xff0c;但C依然处于主导编程世界的地位。 今天在Morgan Stanley的科技访…

SpringBoot整合JPA

添加依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId&…

为什么说选择正确的编程语言很重要,以及如何正确的选择

几个月前&#xff0c;一个同事问我&#xff0c;应该如何选择编程语言&#xff0c;或者有没有什么固定的选择模式&#xff0c;当时我便打算写点什么。上周在硅谷开会&#xff0c;这我是第一次跟“hack3rs”的创业狂以及技术狂们打交道。我学会了很多前所未闻的脏话&#xff0c;也…

细数开源历史上的十个重大事件

开放源码&#xff08;开源&#xff09;的精神在于使用者可以使用、复制、散布、研究和改进软件。这可以追溯到20世纪60年代&#xff0c;至今已有半个世纪了。虽然下面所列举的不都是专门的开源产品&#xff0c;但还是在开源发展的进程中有着巨大的影响。开放源码&#xff08;开…

科研必备学士搜索引擎推荐

综合性学术搜索引擎 中国知网万方数据百度学术谷歌学术谷歌学术镜像Web of ScienceEiVillage2EIsevier电子期刊SpringerSemanticScholar 图片文献检索方法 CNKI 期刊查询 DOAJSocolarOpenDOAROALIB开放存取图书馆 硕博论文搜索下载 上海交大镜像网站欧洲学位论文库 国外电子…

如何写一篇论文

文献综述的地位 体现了学术研究的继承性 文献综述的写作是由学术研究的继承性决定的&#xff0c;因为继承是创新的基础和前提。文献综述部分要澄清所研究问题“从哪里来&#xff0c;到哪里去” 。这部分主要是继承&#xff0c;是梳理前人的成果并找出其内在的逻辑关系和演进的规…

深度卷积神经网络CNNs的多GPU并行框架及其应用

摘要&#xff1a;本文是腾讯深度学习系列文章之一&#xff0c;主要聚焦于腾讯深度学习平台&#xff08;Tencent Deep Learning Platform&#xff09;中深度卷积神经网络Deep CNNs的多GPU模型并行和数据并行框架。 【编者按】深度卷积神经网络有着广泛的应用场景&#xff0c;本…

如果误删谷歌浏览器的书签,怎么恢复

如果是Mac用户&#xff0c;command和z一直恢复就可以 同理&#xff0c;windows用户&#xff0c;也可以使用撤销键&#xff0c;ctrlz即可