这篇博客是springboot日志配置探索的第一篇,主要讲默认配置下springboot的logback日志框架的配置(即直接使用是怎样的)

首先,是一个SpringBoot的有关日志的说明文档:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html

然后我们按照文档的说明顺序来探索这个springboot的日志框架的配置吧

这里先简单介绍一下这个logback框架:(引自博客:https://blog.csdn.net/appleyk/article/details/78717388)

1

首先,一开始是做个总的介绍:

这里还说到,如果你是用staters的方法来用springboot,那么logback是默认拿来用来记录日志的,其实跑的时候那些info就是这个logback的作用了。

但我这里主要研究这个logback框架在springboot里的配置。

2

然后文档的下个部分就在说默认spring的集成的日志输出的格式:

 3

然后下一个部分,是讲默认在控制窗的输出:

默认的话,控制台会记录并输出ERROR,WARN,INFO等级的信息。下面先给个日志信息等级的排序:

TRACE < DEBUG < INFO < WARN < ERROR < FATAL。(最后那个FATAL在logback里面是没有的,在logback里面就是ERROR)

控制台输出这三个的信息,说明spring默认设置的日志等级是INFO,这个后面还会说

然后注意,这里讲到个debug模式,可以通过终端启动的时候输入java -jar myapp.jar --debug或者是直接在配置文件中设置debug=true来进入这个debug模式,这里要提到的是,这个debug模式并不是说,你那些debug等级以上的日志信息会输出,只是会输出很多像内置容器像tomcat,Hibernate, and Spring Boot等一堆有关的debug信息。   除了这个debug模式,还有个trace模式,文档中都有说:

我自己试了一下,debug模式就输出好多之前没看过的东西,还有什么springboot自动配置的报告……  然后trace模式就更恐怖了,打印的东西多到,机子直接跑不动STS……

 4

额然后下一个部分是讲输出的颜色,这个好像要看你的终端,然后也有的配置点东西,这里就不细讲了:

然后接着是讲文件输出的,我们在讲完文件输出的下一章LOG LEVEL再介绍这个文件输出的。

 5

接着的一节是讲Log level,也就是信息等级的:

等级是什么意思呢,比如说你设了root的输出等级是WARN,那么意思就是WARN以下的日志是不会输出的。     我们的配置方式就直接logging.level.*=level,然后上面给了三个内置的隐藏配置,也就是你一启动这个springboot,控制台输出的那些信息的隐藏配置就这三个,它们的意思是:

logging.level.root=WARN   #root日志以WARN级别输出
logging.level.org.springframework.web=DEBUG   #springframework.web日志以DEBUG级别输出
logging.level.org.hibernate=ERROR   #hibernate日志以ERROR级别输出

然后你可以定义自己的包的输出等级,这里先看在没有设置特定包的输出等级之前的输出效果,在controller里有个日志输出的测试函数:

package com.stuPayment.uiController;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
public class TestController { private final Logger logger = LoggerFactory.getLogger(getClass()); @RequestMapping("/test")
public String testPage() {
logger.trace("#######################hello this is trace");
logger.debug("#######################hello this is debug");
logger.info("#######################hello this is info");
logger.warn("#######################hello this is warn");
logger.error("#######################hello this is error");
return "test";
}
}

默认设置的输出效果,就只输出了info,warn,error等级的信息,说明默认设置是日志等级是info:

然后我们在application.properties中加入这一行设置:

logging.level.com.stuPayment.uiController=TRACE

然后再来看效果:

 6

然后就来看刚刚说的文件输出这一节:

做了几个实验,logging.file就不用说了,就只要注意如果直接省略“/”打路径与文件名那么路径是从项目文件里开始的,如果是用logging.path,如果像例子一样/var/log,那么会在D盘(我电脑是D盘)里面有个var/log/spring.log路径与文件,如果不加“/”,那么一样在项目文件下有这个路径和文件。

这里还提到关于日志最大文件的问题,默认是10M,到了10M会重新更新文件:

后面两个大概就是说日志的配置和初始化是在应用生命周期之前的,spring的配置和springboot是控制不了这个log的设置的。下面还会提到这个问题

 7

后面讲的是自定义日志配置还有日志文件的扩展了,这篇文章就先不讲,这里最后再提下如何改变输出格式pattern的配置。

这里还要说一下一个问题:

这里应该是说,日志框架的设置的初始化是在spring初始化之前的,所以按道理是无法通过spring的设置来改变日志的配置的,只能通过日志框架的System properties来配置,那么为什么我们前面能在application properties来配置这个日志框架呢?原因是spring的一些设置已经映射到日志框架中的配置去了:

好的然后继续来讲这个输出格式的问题,

这里提到是说如果你想在这个日志输出内容添加MDC(大概是多线程下可以记录用户信息的一个东西吧好像),可以通过设置这个logging.pattern.level来设置喔,那么不仅仅是这样,你想改变console的输出格式或者是文件中的日志输出格式或者是想改输出的日志的时间格式,输出的信息中等级描述的格式,都可以用这几个设置来配置:

具体的格式设置就不细讲了,这里找了个网上的例子:

Springboot日志配置探索(主要看logback)(一)的更多相关文章

  1. Springboot日志配置探索(主要看logback)(二)

    这篇博客主要是讲在Springboot中扩展的日志框架的配置,也是主要讲logback 8 继续看文档,这里讲到: springboot里面还有几个日志系统框架可以选择使用,你可以通过在classpa ...

  2. SpringBoot Logback配置,SpringBoot日志配置

    SpringBoot Logback配置,SpringBoot日志配置  SpringBoot springProfile属性配置 ================================ © ...

  3. 功能:SpringBoot日志配置详情

    SpringBoot日志配置详情 一.介绍 在所有的项目中,日志是必不可少的,为了高效清晰的查找日志,可以配置日志输出的等级和格式. 在配置后,可以自定义输出日志到指定目录,可以按照天数来分割日志,可 ...

  4. (转)Springboot日志配置(超详细,推荐)

    Spring Boot-日志配置(超详细) 更新日志: 20170810 更新通过 application.yml传递参数到 logback 中. Spring Boot-日志配置超详细 默认日志 L ...

  5. SpringBoot日志配置(详解) 涉及控制台输出日志、生成日志文件、日志级别修改、hibernate日志不输出

    写在前面 本篇主要讲述日志配置,看完本篇可以解决下述问题, 控制台输出日志.生成日志文件.日志级别修改.hibernate日志不输出 Git Demo Path:https://github.com/ ...

  6. springboot 日志配置

    maven依赖中添加了 spring-boot-starter-logging : <dependency> <groupId>org.springframework.boot ...

  7. springboot日志配置

    默认情况下,spring boot使用的是LogBack日志系统.在spring-boot-starter-web和spring-boot-starter中都已经默认依赖了logging的工具包. 如 ...

  8. 微服务-springboot日志配置

    springboot 默认会加载classpath:logback-spring.xml文件. springProfile 中的name名字对应application-xx.properties 中的 ...

  9. ELK springboot日志收集

    一.安装elasticsearch 可以查看前篇博客 elasticsearch安装.elasticsearch-head 安装 二.安装 配置 logstash 1.安装logstash 下载地址: ...

随机推荐

  1. 重学DSP:对于卷积的理解

    最近,我发现自己对于一个事情,如果不给自己一个说服自己的理由,就会出现不能理解,不能记住,以至于不会使用或者“盲目”应用的情况. 但是,我学的这个学科就是应当建立在对信号作用过程的理解上面的. 下面, ...

  2. ffmpeg遇到inttypes.h和UINT64_C

    http://blog.csdn.net/cll131421/article/details/7763657 编译过程:错误一:无法打开包括文件:“inttypes.h”: No such file ...

  3. html5--3.10 input元素(9)

    html5--3.10 input元素(9) 学习要点 input元素及其属性 input元素 用来设置表单中的内容项,比如输入内容的文本框,按钮等 不仅可以布置在表单中,也可以在表单之外的元素使用 ...

  4. Opencv— — mix channels

    // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...

  5. bzoj1013高斯消元

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1013 似乎是很明显的高斯消元: 第一次写高斯消元. 代码如下: #include<io ...

  6. rsync(三)算法原理和工作流程分析

    在开始分析算法原理之前,简单说明下rsync的增量传输功能. 假设待传输文件为A,如果目标路径下没有文件A,则rsync会直接传输文件A,如果目标路径下已存在文件A,则发送端视情况决定是否要传输文件A ...

  7. UItextFied 的属性

    网络学习笔记 在iPhone应用中通过UITextField填写信息时,经常出现出现自动更正输入信息.首字母大写等情况 尤其是在填写用户名时,这种本想提供便捷的功能反而让人感到特别麻烦 今天查了相关书 ...

  8. SSIS 导入多个Excel 数据

    http://blog.csdn.net/jinjazz/article/details/2710169 http://blog.csdn.net/jinjazz/article/details/27 ...

  9. 使用httpClient下载网页

    HttpCore 对HTTP协议客户端编程做了一些基本的封装.例如,格式化请求头和解析响应头.LineF ormatter用来格式化请求头信息,而实际的实现在BasicLineF ormatter 上 ...

  10. 挨踢职场求生法则-----我在IT职场打滚超过15年了,从小小的程序员做到常务副总

    摘要我在IT职场打滚超过15年了,从小小的程序员做到常务副总.相对于其它行业,IT职场应该算比较光明的了,但也陷阱重重,本文说说我的亲身体会,希望大家能在IT职场上战无不胜! 通用法则 法则1:忍耐是 ...