SpringBoot logback-spring配置,再也不用为日志烦恼了。再推荐IDEA一个日志插件Grep Console美美哒展示控制台输出
目录
一、配置内容及效果
二、配置解析
三、插件推荐
四、推荐大牛文章
一、配置内容及效果
1、配置项目展示
2、logback-spring.xml日志配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!--scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。configuration 子节点为 appender、logger、root
-->
<configuration scan="true" scanPeriod="60 seconds" debug="false"><!--source是启动配置文件中的配置,如果没有则使用默认值 1是系统名称,2是日志输出路径--><springProperty scope="context" name="appName" source="spring.application.name" defaultValue="appName"/><springProperty scope="context" name="my.log.path" source="my.log.path" defaultValue="logs"/><!-- 将日志输出到指定目录文件 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 文件名称,按照应用输出日志 --><file>${my.log.path}/${appName}.log</file><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!--文件名称,按照大小和时间对日志进行切割 当到达20mb后自动归档切割或者第二天也会归档--><fileNamePattern>${my.log.path}/${appName}-%d{yyyyMMdd}.%i.log</fileNamePattern><maxFileSize>20MB</maxFileSize></rollingPolicy><!-- 展示格式 encoder-表示输出到文件 --><encoder><charset>UTF-8</charset><pattern>%d %-5level [ %thread ] %-36logger{36} - [%X{requestId:-SYSTEM}]: %msg%n</pattern></encoder></appender><!-- 输出到控制台 ConsoleAppender --><appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"><!-- 展示格式 layout-表示输出到控制台 --><layout class="ch.qos.logback.classic.PatternLayout"><pattern>%d %-5level [ %thread ] %boldMagenta(%-36logger{36}) %highlight(- [%X{requestId:-SYSTEM}]:) %cyan(%msg%n)</pattern></layout></appender><!-- 指定最基础的日志输出级别 --><root level="INFO"><!-- appender将会添加到这个loger --><appender-ref ref="consoleLog"/><appender-ref ref="FILE"/></root>
</configuration>
3、配置application.yml文件(第一个是必须配置,后面两个可以不配,让logback-spring.xml使用默认的值)
#开启日志
logging:level:root: info#日志使用logback.xml格式的文件路径config: classpath:logback-spring.xml#应用名称
spring:application:name: app#日志输出路径,路径存在则自动创建并使用,此配置未配则用默认值
my:log:path: C:/tmp/log
4、效果展示
4.1 不配application.yml后面的参数,效果
4.2 配application.yml后面的参数,效果(直接在C盘中生成了,不在项目路径)
日志内容效果
二、配置解析
1、springProperty节点 资源统筹配置
<!--source是启动配置文件中的配置,如果没有则使用默认值 1是系统名称,2是日志输出路径--><springProperty scope="context" name="appName" source="spring.application.name" defaultValue="appName"/><springProperty scope="context" name="my.log.path" source="my.log.path" defaultValue="logs"/>
name是后面日志参数用$来解析,source是spring启动文件配置的信息,defaultValue的值是当source没用配置时,使用的默认值
2、appender节点 输出日志信息配置--一般配置多个节点,搭配使用
2.1 输出到控制台的日志
<!-- 输出到控制台 ConsoleAppender --><appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"><!-- 展示格式 layout-表示输出到控制台 --><layout class="ch.qos.logback.classic.PatternLayout"><pattern>%d %-5level [ %thread ] %boldMagenta(%-36logger{36}) %highlight(- [%X{requestId:-SYSTEM}]:) %cyan(%msg%n)</pattern></layout></appender>
2.2 输出到文件的日志
<!-- 将日志输出到指定目录文件 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 文件名称,按照应用输出日志 --><file>${my.log.path}/${appName}.log</file><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!--文件名称,按照大小和时间对日志进行切割 当到达20mb后自动归档切割或者第二天也会归档--><fileNamePattern>${my.log.path}/${appName}-%d{yyyyMMdd}.%i.log</fileNamePattern><maxFileSize>20MB</maxFileSize></rollingPolicy><!-- 展示格式 encoder-表示输出到文件 --><encoder><charset>UTF-8</charset><pattern>%d %-5level [ %thread ] %-36logger{36} - [%X{requestId:-SYSTEM}]: %msg%n</pattern></encoder></appender>
${my.log.path}这里类似的参数,都在启动文件配置,如果没有配置则会使用1上说的默认参数。
SizeAndTimeBasedRollingPolicy类里面的配置是针对日志分割归档使用,分别是按天和按大小,如果一天中没有超过20m就到第二天分割出来归档,如果当天超过20m就马上分割。
2.3 pattern节点 日志参数解析
- %d{HH: mm:ss.SSS}——日志输出时间
- %thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用
- %-5level——日志级别,并且使用5个字符靠左对齐
- %logger{36}——日志输出者的名字
- %msg——日志消息
- %n——平台的换行符
- %xx()——xx指颜色,括号内是指用这种颜色渲染
3、root节点配置 控制输出哪些appender节点
<!-- 指定最基础的日志输出级别 --><root level="INFO"><!-- appender将会添加到这个loger --><appender-ref ref="consoleLog"/><appender-ref ref="FILE"/></root>
三、插件推荐
1、插件名称Grep Console
2、插件配置,画了圈的都要配
3、最终效果
四、推荐大牛文章
如果大家觉得想更深入去学习,推荐一篇真的详细的文章:日志超详细配置
如果有啥不懂欢迎留言。
SpringBoot logback-spring配置,再也不用为日志烦恼了。再推荐IDEA一个日志插件Grep Console美美哒展示控制台输出相关推荐
- Android 日志自动分析,Android Log Viewer:一个日志查看器工具,可简化实时对Android日志的分析...
作为与Cordova一起工作的移动应用程序开发人员, 我知道调试应用程序的本机部分会很困难, 例如, 当你为应用程序创建本机插件时(在这种情况下, Android Studio无效).在试图找出我的应 ...
- linux每天生成一个日志文件,使Apache每天产生一个日志文件
Linux:使Apache每天产生一个日志文件,解决apache日志文件过大的问题. 方法: 用rotatelogs实现apache日志按日期存放. 操作步骤: 一.在apache的配置文件中找到 E ...
- MyBatis日志插件:Mybatis Log Plugin——将控制台输出的mybatis日志转化成可执行的sql语句
文章目录 官网 前言 安装 使用 特别说明 官网
- SpringBoot+logback实现日志打印
SpringBoot+logback 一.日志简介 1.SLF4J介绍 二.SpringBoot集成logback 1.配置文件详解 1.彩色日志 2.appender 3.root和logger详解 ...
- spring boot:从零开始搭建一个项目 - day 4 控制台输出日志美化 + swagger2
spring boot:从零开始搭建一个项目 - day 4 控制台输出日志美化 + swagger2 一.logback.xml配置日志美化 二.集成swagger2 1.引入依赖 2.编写配置文件 ...
- 十年老架构师神级推荐,MyBatis源码分析,再也不用为源码担忧了
十年老架构师神级推荐,MyBatis源码分析,再也不用为源码担忧了 前言 MyBatis是一个优秀的持久层ORM框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL 本身,而不需要花 ...
- logback使用配置详解
1.介绍 Logback是由log4j创始人设计的另一个开源日志组件,它当前分为下面下个模块: logback-core:其它两个模块的基础模块 logback-classic:它是log4j的一个改 ...
- SpringBoot排除数据源配置,配置决定行为
项目场景: 最近接到一个需求,大概意思呢就是数据库连接不够用了,部分服务(分服务)就不需要配置数据源了,需要跟db打交道的地方全部改成rpc去调用具备db能力的服务(总服务) 问题描述: 其实需要改的 ...
- asp.net core使用serilog将日志推送到腾讯云日志服务
为什么是serilog? Serilog是 .NET 中最著名的结构化日志类库. 基于日志事件log events,而不是日志消息log message. 你可以将日志事件格式化为控制台的可读文本或者 ...
最新文章
- python安装cvxpy
- 026——VUE中事件修饰符之使用$event与$prevent修饰符操作表单
- int类型存小数 mysql_MySQL基本数据类型
- python + selenium 搭建环境步骤
- voxblox建图教程
- Java多线程基础学习一:线程的6种状态和相互转化
- centos下openfire安装(转)
- VMware SDS 之四: VSAN的技术细节 (含VSAN 6.0、6.1版的新内容)
- 【LeetCode 231】Power of Two
- 动态规划实战1-leetcode 983.Minimum Cost For Tickets
- java核心技术卷1学习思维导图
- echarts入门教程(超级详细带案例)
- 使用微PE制作纯净版装机U盘(纯小白教程)
- Guava base -- Joiner
- 万字长文 | 关于Filecoin期货与矿机,你想知道的一切都在这
- android图片编辑加文字,图片编辑加字下载-图片编辑加字 安卓版v3.9.0.0406-PC6安卓网...
- Stashed changes conflicted with hook auto-fixes...
- OpenCV C++入门,读取和显示一张图片
- 爬取虎牙TV全站主播信息
- out of synch 不同步是什么意思?
热门文章
- springboot 7天签到功能设计 数据库表设计 加代码
- Revit中建筑柱和结构柱的区分以及梁的搭建之学习记录
- Virgo软件的介绍
- PPT高手常掉进的7个陷阱(下)
- 解读 拉格朗日插值法python,保你学明白
- LibreOJ #6177. 「美团 CodeM 初赛 Round B」送外卖2【状压DP】
- 3D全景图,全景视频,陀螺仪
- RSA加密解密和签名的应用场景
- Repair Pipelining for Erasure-Coded Storage(ATC‘17)
- 为什么Java 服务Docker容器耗尽了系统内存