本案例中可以了解,怎么配置日志的输出路径,输出格式(比如说zip格式),按日期进行划分(今天的日志输出为一个文件,明天的日志输出到另一个文件),在按日期划分的同时又按文件大小划分(比如说每天的日志记录很多,希望一个日志文件为5GB...),上面的功能,看完这篇都能实现。(参考链接超有用,建议直接下拉打开链接)

Slf4j 日志管理的抽象接口

Log4j,log4j2,logback,日志管理框架,日志管理实现

Springboot中pom.xml,若引入了web的起步依赖,不需要再引入日志管理相关的其他依赖,因此可以直接使用slf4j+logback方式管理日志。

引入了web的起步依赖,内部会有slf4j和logback需要的依赖:

自定义日志配置

由于日志服务一般都在ApplicationContext创建前就初始化了,它并不是必须通过Spring的配置文件控制。因此通过系统属性和传统的Spring Boot外部配置文件依然可以很好的支持日志控制和管理。

根据不同的日志系统,你可以按如下规则组织配置文件名,就能被正确加载

Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy

Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml

Log4j2:log4j2-spring.xml, log4j2.xml

JDK (Java Util Logging):logging.properties

logback-spring.xml(日志管理的xml文件名也可以自己设置, 通过在application.properties中配置logging.config=classpath:xxxx.xml)

logback-spring.xml配置案例

<?xml version="1.0" encoding="UTF-8"?>
<configuration  scan="true" scanPeriod="60 seconds" debug="false">
<!—根节点包含的属性
scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
--><!--1.定义参数常量 -->
<property name="LOG_PATH" value="D:/logs"/><property name="log.level" value="info"/>
<!--TRACE < DEBUG < INFO < WARN < ERROR --><property name="log.maxHistory" value="30"/><!-- <property name="log.filePath" value="d:/logs" />--><!--日志保存的路径--><property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" /><!--日志的输出格式--><!--appender用来格式化日志输出节点,有俩个属性name和class,class用来指定哪种输出策略,常用就是控制台输出策略和文件输出策略。--><!--输出到控制台--><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>info</level></filter><encoder><pattern>${log.pattern}</pattern></encoder></appender><!--
<encoder>表示对日志进行编码:
%d{HH: mm:ss.SSS}——日志输出时间
%thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用
%-5level——日志级别,并且使用5个字符靠左对齐
%logger{36}——日志输出者的名字
%msg——日志消息
%n——平台的换行符
ThresholdFilter为系统定义的拦截器,例如我们用ThresholdFilter来过滤掉ERROR级别以下的日志不输出到文件中。如果不用记得注释掉,不然你控制台会发现没日志--><!—向文件中输出日志--><appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_PATH}/info.log</file><!-- 文件路径 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--随着时间滚动--><fileNamePattern>${LOG_PATH}/iotbaas-%d{yyyy-MM-dd}-%i.zip</fileNamePattern><!-- 文件名称 --><maxHistory>${log.maxHistory}</maxHistory> <!-- 文件最大保存历史数量 --><!--当日志文件超过maxFileSize指定的大小是,根据上面提到的%i进行日志文件滚动 注意此处配置SizeBasedTriggeringPolicy是无法实现按文件大小进行滚动的,必须配置timeBasedFileNamingAndTriggeringPolicy--><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>200MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder></appender><root level="info"><appender-ref ref="console" /><appender-ref ref="file" /></root><!-- logback为java中的包 --><logger name="com.example.logging_learn.controller"/>
<!--<logger>用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender>。<logger>仅有一个name属性,一个可选的level和一个可选的addtivity属性。
name:用来指定受此loger约束的某一个包或者具体的某一个类。
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。如果未设置此属性,那么当前loger将会继承上级的级别。
addtivity:是否向上级logger传递打印信息。默认是true。 --><!--logback.LogbackDemo:类的全路径 --><logger name="com.dudu.controller.LearnController" level="WARN" additivity="false"><appender-ref ref="console"/></logger>
</configuration>

参考:https://blog.csdn.net/gwd1154978352/article/details/78344091?utm_source=blogxgwz2

邮箱:tyhu317@163.com

转载于:https://www.cnblogs.com/joan-HTY/p/10021815.html

超简单的Springboot中的日志管理配置相关推荐

  1. SpringBoot中LogBack日志输出配置记录

    <?xml version="1.0" encoding="UTF-8"?><!-- Created by jinKai on 2017/1/ ...

  2. 全程配图超清晰的Springboot权限控制后台管理项目实战第二期(Springboot+shiro+mybatis+redis)

    全程配图超清晰的Springboot权限控制后台管理项目实战第二期(Springboot+shiro+mybatis+redis) 众所周知,作为一个后端新手学习者,通过项目来学习,增长项目经验,是一 ...

  3. java quartz管理,SpringBoot中使用Quartz管理定时任务的方法

    定时任务在系统中用到的地方很多,例如每晚凌晨的数据备份,每小时获取第三方平台的 Token 信息等等,之前我们都是在项目中规定这个定时任务什么时候启动,到时间了便会自己启动,那么我们想要停止这个定时任 ...

  4. linux系统中的日志管理

    Linux系统中的日志管理 1 实验环境 2 journald日志服务 2.1 journalctl命令的用法 2.2 用journald服务永久存放日志 3 rsyslog日志服务 3.1 自定义日 ...

  5. 【学习笔记】springBoot中获取sping管理的bean

    文章目录 一.使用场景 二.springBoot中获取sping管理的bean 2.1 生成工具类SpringContextUtil 2.2 使用工具类SpringContextUtil 2.3 注意 ...

  6. 10、Linux系统中的日志管理及时间设定

    Linux系统中的日志管理 实验环境 一.journald 1.journalctl命令的用法 2.永久存放日志 二.rsyslog 1.自定义日志采集路径 2.日志的远程同步 3.更改日志采集格式 ...

  7. 在Tomcat 与weblogic 中的 日志(log4j) 配置系列二(weblogic 应用程序使用log4j)

    前言 在Tomcat 与weblogic 中的 日志(log4j) 配置系列一 在系列一 中, 有一个问题一直没有解决,就是部署到weblogic 中应用程序如何通过log4j写日志到文件中? 这里仅 ...

  8. 在Tomcat 与weblogic 中的 日志(log4j) 配置系列三(log文件的存放路径)

    前言 前面一直在说,如何读取到log4j 的配置文件 log4j.properties. 接下来的探讨的是: log4j 里配置产生的log 文件的路径如何设置. tomcat 还好.拿复杂点的 we ...

  9. MySQL中的日志管理 日志备份与恢复

    目录 一.MySQL常用日志类型及开启 1.错误日志 2.通用查询日志 3.二进制日志(binlog) 4.慢查询日志 二.查看日志状态 1.查看通用查询日志是否开启 2.查看二进制日志是否开启 3. ...

最新文章

  1. spring-boot2
  2. Navicat日期时间格式
  3. C/S通信模型与B/S通信模型介绍
  4. (2)FPGA面试题竞争与冒险
  5. 【logstash】logstash monitor
  6. android获取指针空间大小_Android进阶:Binder那么弱怎么面大厂?
  7. indexed true mysql_一行代码,搞定浏览器数据库 IndexedDB
  8. mac sqlite可视化工具_Navicat for SQLite 12 for mac(强大数据库管理及开发工具)
  9. Redis - 学习笔记(1)
  10. 小程序容器化:基于uni-app的Android小程序开发
  11. duet for Mac(Mac投屏软件)好用又不花钱
  12. aspose-word主要标签结构图和标签详细作用
  13. IT66021FN 翻译
  14. 记华为AP3010DN-AGN胖转瘦过程 AP版本升级
  15. 用Python操作MySQL数据库-详细指南
  16. yaf根据开发环境读取配置
  17. Burpsuite暴力破解工具的简单使用
  18. Python_计算一个数的阶乘并统计尾部0的个数
  19. (9)调整图像的亮度和对比度
  20. arm生态发展与交叉编译链选择

热门文章

  1. 指针数组vs数组指针 指针函数vs函数指针
  2. WINHTTP的API接口说明。
  3. 设计模式(1)单例模式
  4. HDU3549+Ford-Fulkerson
  5. 分析:微软最终将赢得平板电脑市场的5个理由
  6. 视频过大怎么压缩变小
  7. IDEA取消默认打开的项目工程
  8. PHP程序员必须收藏的资源大全
  9. 成功恢复新网LINUX REISERFS 6块盘 RAID5邮件服务器
  10. BZOJ 1087 SCOI2005 互不侵犯King 状压DP