原本的日志文件配置如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <configuration scan="true" scanPeriod="60 seconds" debug="false">
  4.  
  5. <contextName>logback</contextName>
  6. <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
  7. <property name="log.path" value="E:\\log\\logback.log" />
  8.  
  9. <!--输出到控制台-->
  10. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  11. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  12. <level>INFO</level>
  13. </filter>
  14. <withJansi>true</withJansi>
  15. <encoder>
  16. <!--<pattern>%d %p (%file:%line\)- %m%n</pattern>-->
  17. <!--格式化输出:%d:表示日期 %thread:表示线程名 %-5level:级别从左显示5个字符宽度 %msg:日志消息 %n:是换行符-->
  18. <pattern>%black(控制台-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger) - %cyan(%msg%n)</pattern>
  19. <charset>UTF-8</charset>
  20. </encoder>
  21. </appender>
  22.  
  23. <!--输出到文件-->
  24. <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
  25. <file>${log.path}</file>
  26. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  27. <fileNamePattern>logback.%d{yyyy-MM-dd-HH-mm}.log</fileNamePattern>
  28. <maxHistory>30</maxHistory>
  29. <totalSizeCap>1GB</totalSizeCap>
  30. </rollingPolicy>
  31. <encoder>
  32. <!--格式化输出:%d:表示日期 %thread:表示线程名 %-5level:级别从左显示5个字符宽度 %msg:日志消息 %n:是换行符-->
  33. <pattern>文件记录-%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
  34. <charset>GBK</charset>
  35. </encoder>
  36. </appender>
  37.  
  38. <root level="info">
  39. <appender-ref ref="console" />
  40. <appender-ref ref="file" />
  41. </root>
  42.  
  43. <logger name="com.sxd.controller"/>
  44. <logger name="com.sxd.util.LogTestController" level="WARN" additivity="false">
  45. <appender-ref ref="console" />
  46. </logger>
  47.  
  48. </configuration>

但是运行过程中发现,

生成日志文件并未按照上面配置中的 按照年月日时分进行分割,

并未在打到文件最大数量的时候自动清理,

并未生成到指定的日志文件目录下,而是生成到了项目根目录下。

解决:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <configuration scan="true" scanPeriod="60 seconds" debug="false">
  4.  
  5. <contextName>logback</contextName>
  6. <!--定义日志文件的存储地址目录-->
  7. <property name="LOG_HOME" value="E:/log/"/>
  8.  
  9. <!--输出到控制台-->
  10. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  11. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  12. <level>INFO</level>
  13. </filter>
  14. <withJansi>true</withJansi>
  15. <encoder>
  16. <!--<pattern>%d %p (%file:%line\)- %m%n</pattern>-->
  17. <!--格式化输出:%d:表示日期 %thread:表示线程名 %-5level:级别从左显示5个字符宽度 %msg:日志消息 %n:是换行符-->
  18. <pattern>%black(控制台-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger) - %cyan(%msg%n)</pattern>
  19. <charset>UTF-8</charset>
  20. </encoder>
  21. </appender>
  22.  
  23. <!--输出到文件-->
  24. <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
  25.  
  26. <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  27. <fileNamePattern>${LOG_HOME}logback.%d{yyyy-MM-dd-HH-mm}[%i].log</fileNamePattern>
  28. <maxFileSize>10kb</maxFileSize>
  29. <maxHistory>30</maxHistory>
  30. <totalSizeCap>1GB</totalSizeCap>
  31. </rollingPolicy>
  32. <encoder>
  33. <!--格式化输出:%d:表示日期 %thread:表示线程名 %-5level:级别从左显示5个字符宽度 %msg:日志消息 %n:是换行符-->
  34. <pattern>文件记录-%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger - %msg%n</pattern>
  35. <charset>UTF-8</charset>
  36. </encoder>
  37. </appender>
  38.  
  39. <root level="info">
  40. <appender-ref ref="console" />
  41. <appender-ref ref="file" />
  42. </root>
  43.  
  44. <logger name="com.sxd.controller"/>
  45. <logger name="com.sxd.util.LogTestController" level="WARN" additivity="false">
  46. <appender-ref ref="console" />
  47. </logger>
  48.  
  49. </configuration>

解释一下:

TimeBasedRollingPolicy更换为SizeAndTimeBasedRollingPolicy

启动的时候,会提醒你<maxFileSize>10kb</maxFileSize>是必须要配置的。

而数值的配置显得尤为重要。

【spring boot logback】日志logback 生成日志文件在本项目下,而不在指定的日志文件目录下/指定日志文件到达最大值后不按照配置进行切割的更多相关文章

  1. Spring Boot 项目学习 (四) Spring Boot整合Swagger2自动生成API文档

    0 引言 在做服务端开发的时候,难免会涉及到API 接口文档的编写,可以经历过手写API 文档的过程,就会发现,一个自动生成API文档可以提高多少的效率. 以下列举几个手写API 文档的痛点: 文档需 ...

  2. Spring Boot快速集成kaptcha生成验证码

    Kaptcha是一个非常实用的验证码生成工具,可以通过配置生成多样化的验证码,以图片的形式显示,从而无法进行复制粘贴:下面将详细介绍下Spring Boot快速集成kaptcha生成验证码的过程. 本 ...

  3. 2.获取指定目录及子目录下所有txt文件的个数,并将这些txt文件复制到F盘下任意目录

    package cn.it.text; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...

  4. Spring Boot中使用logback日志框架

    说明:Spring Boot在最新的版本中默认使用了logback框架.一般来说使用时只需在classpath下创建logback.xml即可,而官方推荐使用logback-spring.xml替代, ...

  5. Spring Boot 使用 Log4j2 & Logback 输出日志到 EKL

    文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK ...

  6. Spring Boot(三):logback打印日志

    springboot对logback的支持是非常好的,不需要任何配置,只需要在resource下加logback.xml就可以实现功能直接贴代码: <?xml version="1.0 ...

  7. Spring Boot中实现logback多环境日志配置

    在Spring Boot中,可以在logback.xml中的springProfile标签中定义多个环境logback.xml: <springProfile name="produc ...

  8. Spring Boot 应用系列 5 -- Spring Boot 2 整合logback

    上一篇我们梳理了Spring Boot 2 整合log4j2的配置过程,其中讲到了Spring Boot 2原装适配logback,并且在非异步环境下logback和log4j2的性能差别不大,所以对 ...

  9. Spring Boot项目的Logback配置文件使用yaml格式

    1.普通的Spring项目使用logback默认用properties文件做为配置变量. 2.如果非要用yaml文件,那么可以转成Spring Boot项目,天生无缝结合 3.没办法,如果项目配置文件 ...

随机推荐

  1. 设计模式之第8章-策略模式(Java实现)

    设计模式之第8章-策略模式(Java实现) “年前大酬宾了啊,现在理发冲500送300,冲1000送500了.鱼哥赶紧充钱啊,理发这事基本一个月一回,挺实惠的啊.不过话说那个理发店的老板好傻啊,冲10 ...

  2. leetcode 【 Partition List 】python 实现

    题目: Given a linked list and a value x, partition it such that all nodes less than x come before node ...

  3. Python subprocess.Popen中communicate()和wait()区别

    刚开始我是使用的wait(),但是当adb命令返回太多时,程序就会卡死,查询得知原因后,才使用了communicate(),communicate()返回一个元组:(stdoutdata, stder ...

  4. IOS架构

    iPhone OS(现在叫iOS)是iPhone, iPod touch 和 iPad 设备的操作系统. 1,Core OS: 是用FreeBSD和Mach所改写的Darwin, 是开源.符合POSI ...

  5. Python+Selenium练习篇之17-断言页面标题

    继续来介绍一个Selenium中页面title断言方法. 相关脚本代码如下: # coding=utf-8 import time from selenium import webdriver dri ...

  6. Django中前端界面实现级联查询

    Django前端界面实现级联查询 一.前端界面中 <span scope="col" colspan="6"> 院系:<select id=& ...

  7. python 学习分享-函数篇2

    递归 自己玩自己的函数: 1. 必须有一个明确的结束条件 2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 3. 递归效率不高,递归层次过多会导致栈溢出 递归例子和二分查找都放在里面了 ...

  8. Postgres 将查询结果同时插入数据表

    INSERT INTO table [ ( column [, ...] ) ] { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ... ...

  9. python 小练习1

    _input = ['I',6,6,'love','python',6] _str = '' _sum = 0 for item in _input: if isinstance(item,str): ...

  10. [暑假集训--数论]poj1365 Prime Land

    Everybody in the Prime Land is using a prime base number system. In this system, each positive integ ...