SpringBoot框架:日志切割简单记录

一、依赖包导入

  1、导入logback依赖包:

<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency>

二、编写日志规则

  1、在resources下添加logback.xml文件,内容如下:

<?xml version="1.0" encoding="utf-8"?> <configuration> <!-- 定义文件输出格式, 编码方式, 输出文件的路径 --> <property name="pattern" value="[%date{yyyy-MM-dd HH:mm:ss.SSS}] %X{logthreadId} %-5level %logger{80} %method %line - %msg%n"/> <property name="charsetEncoding" value="UTF-8"/> <property name="logPathError" value="/root/monitoring/service/logs/service-log/error"/> <property name="logPathWarning" value="/root/monitoring/service/logs/service-log/warning"/> <property name="logPathInfo" value="/root/monitoring/service/logs/service-log/info"/> <!-- CONSOLG 控制台日志--> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${pattern}</pattern> <charset>${charsetEncoding}</charset> </encoder> </appender> <!-- INFO 输出到文件 --> <appender name="infoLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <append>true</append> <encoder> <pattern>${pattern}</pattern> <charset>${charsetEncoding}</charset> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern> ${logPathInfo}${file.separator}%d{yyyy-MM-dd}${file.separator}service-INFO-%d{yyyy-MM-dd}.%i.log </fileNamePattern> <maxHistory>30</maxHistory> <maxFileSize>10MB</maxFileSize> </rollingPolicy> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <!-- 设置日志输出级别 --> <level>INFO</level> </filter> </appender> <!-- WARN 输出到文件 --> <appender name="warnLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <append>true</append> <encoder> <pattern>${pattern}</pattern> <charset>${charsetEncoding}</charset> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern> ${logPathWarning}${file.separator}%d{yyyy-MM-dd}${file.separator}service-WARN-%d{yyyy-MM-dd}.%i.log </fileNamePattern> <maxHistory>30</maxHistory> <maxFileSize>10MB</maxFileSize> </rollingPolicy> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <!-- 设置日志输出级别 --> <level>WARN</level> </filter> </appender> <!-- ERROR 输出到文件 --> <appender name="errorLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <append>true</append> <encoder> <pattern>${pattern}</pattern> <charset>${charsetEncoding}</charset> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern> ${logPathError}${file.separator}%d{yyyy-MM-dd}${file.separator}service-ERROR-%d{yyyy-MM-dd}.%i.log </fileNamePattern> <maxHistory>30</maxHistory> <maxFileSize>10MB</maxFileSize> </rollingPolicy> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <!-- 设置日志输出级别 --> <level>ERROR</level> </filter> </appender> <!--配置日志输出的级别--> <root level="INFO"> <appender-ref ref="console"/> <appender-ref ref="infoLog"/> <appender-ref ref="warnLog"/> <appender-ref ref="errorLog"/> </root> </configuration>

  2、标签、参数配置详情

  (1)configuration:

  scan: 默认为true,当设置为true时,配置文件发生改变则会被重新加载。

  scanPeriod: 设置监测配置文件是否有修改的时间间隔,默认单位是毫秒;当scan为true此属性生效,默认的时间间隔为1分钟。

  debug: 默认为false,当设置为true时,打印内部日志信息。

  (2)property:

  name: 变量的名称

  value: 变量的值

  (3)appender:

  ①ConsoleAppender:

  encoder:对日志进行格式化。   target:字符串System.out或者System.err。

  ②FileAppender:

  file:被写入的文件名,如果上级目录不存在会自动创建。
  append:默认为true,true则日志追加到文件结尾,false则清空现存文件。
  encoder:对日志进行格式化。
  prudent:
默认false,若是true则日志安全的写入文件。

  ③RollingFileAppender:

  file:被写入的文件名,如果上级目录不存在会自动创建。

  append:默认为true,true则日志追加到文件结尾,false则清空现存文件。

  rollingPolicy:当发生滚动时,决定RollingFileAppender的行为是文件移动或重命名,属性class定义具体的滚动策略类ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy
    fileNamePattern:必要节点,包含文件名及“%d”转换符,“%d”包含java.text.SimpleDateFormat指定的时间格式,如:%d{yyyy-MM}。如果直接使用 %d,默认格式是 yyyy-MM-dd。               RollingFileAppender的file字节点可有可无,通过设置file可以为活动文件和归档文件指定不同位置,当前日志总是记录到file指定的文件(活动文件),活动文件的名字不会改变;               如果没设置file,活动文件的名字会根据fileNamePattern 的值,每隔一段时间改变一次。“/”或者“\”会被当做目录分隔符。
              必须含有“%i”,在切分文件时这个数字会用来做标识。
    maxHistory:    可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。               假设设置每个月滚动,且
<maxHistory>是6,则只保存最近6个月的文件,删除之前的旧文件。

    maxFileSize: 这是活动文件的大小,默认值是10MB。

  ④AsyncAppender

  (4)logger:

  设置某一包或类下的日志打印级别、appender。

  (5)root:

  指定日志级别及输出的appender。

三、映射

  1、在yml中对logback.xml进行映射,使其生效:

logging:
config:
classpath:logback.xml

四、运行结果

  1、按照日志级别进行切割:

  

  2、按照时间和大小进行切割:

  

  

 


__EOF__

本文作者我命倾尘
本文链接https://www.cnblogs.com/guobin-/p/14192957.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   我命倾尘  阅读(2730)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示