Spring Boot2.x教程:(五)日志分割

日志分割

  • 1、概述
  • 2、为什么选择Logback
    • 2.1、创建配置文件
    • 2.2、配置说明
    • 2.3、修改应用程序配置
    • 2.4、启动应用程序
  • 3、总结

大家好,我是欧阳方超,可以扫描下方二维码关注我的公众号“欧阳方超”,后续内容将在公众号首发。 在这里插入图片描述

在这里插入图片描述

1、概述

在现代应用程序中,日志管理是至关重要的。它不仅有助于调试和监控应用程序的运行状态,还能帮助我们分析用户行为和系统性能。在这篇博文中,将介绍如何在Spring Boot项目中配置日志,以实现每天生成一个新的日志文件,并仅保留最近7天的日志,自动删除过期的日志文件,当然生成日志文件的频次以及保留最近多少份的日志可以由此衍生。

2、为什么选择Logback

Spring Boot默认使用Logback作为其日志框架。Logback功能强大,支持多种日志输出格式和灵活的日志管理策略,非常适合我们的需求。
首先,我们需要在Spring Boot项目中创建一个Logback配置文件。请按照以下步骤操作:

2.1、创建配置文件

在src/main/resources目录下创建一个名为logback-spring.xml的文件,并添加以下内容:

<configuration>
<!--    <property name="LOG_PATH" value="${LOG_PATH:-${user.home}/logs}"/>--><property name="LOG_PATH" value="/data/app/fuyangv2/backend/logs}"/><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_PATH}/spring-boot-log.log</file><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_PATH}/spring-boot-log.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>7</maxHistory> <!-- 保留最近7天的日志 --><totalSizeCap>1GB</totalSizeCap> <!-- 总大小限制 --></rollingPolicy></appender><root level="INFO"><appender-ref ref="FILE"/></root>
</configuration>

2.2、配置说明

LOG_PATH

<property name="LOG_PATH" value="${LOG_PATH:-${user.home}/logs}"/>

上述代码定义了日志存储路径。如果未设置环境变量 LOG_PATH,则默认使用用户主目录下的 logs 文件夹,在示例中上面这段代码被注释掉了,采用了把日志路径固定写死的形式。

RollingFileAppender
RollingFileAppender: 这个Appender会根据时间滚动生成新的日志文件。

TimeBasedRollingPolicy
TimeBasedRollingPolicy: 使得每一天生成一个新的日志文件。
: 定义了生成的日志文件名格式。
: 设置最多保留7天的历史日志文件。
: 限制总的日志大小为1GB,以防止占用过多磁盘空间。

2.3、修改应用程序配置

确保在application.yml文件中没有与日志相关的冲突配置。如果需要,可以添加以下行来指定Logback配置:

logging:config: classpath:logback-spring.xml

2.4、启动应用程序

完成上述配置后,启动Spring Boot应用程序。可以使用以下命令:

nohup java -jar service.jar &

说明
使用 nohup 命令可以让应用在后台运行,即使关闭终端也不会被终止。
日志将自动按照配置生成到指定目录,并且每天都会创建一个新的日志文件,旧的日志文件会在超过7天后被自动删除。

3、总结

通过以上步骤,可以成功地在Spring Boot项目中实现每天生成一个新的日志文件,并且只保留最近7天的日志。这种方式不仅使得日志管理更加高效,还避免了单一大文件带来的管理和性能问题。再也不用使用Linux中的crontab定时删除日志了。
我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。我们下次见。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1558953.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu18.04系统中图形化界面

一、Ubuntu 18.04 中&#xff0c;使用 GDM 作为默认的图形用户界面&#xff08;GUI&#xff09;管理器。GDM 是 GNOME Display Manager 的缩写&#xff0c;它是用于 Ubuntu 的显示管理器&#xff0c;负责处理登录和会话管理。 通过命令行重启 Ubuntu 18.04 上的图形界面服务&am…

技术路线图用什么画?用这个在线工具轻松完成绘制!

在当今快速发展的技术世界中&#xff0c;技术路线图已成为企业和团队不可或缺的战略规划工具。它不仅能够清晰地展示技术发展方向&#xff0c;还能帮助团队成员、利益相关者和投资者更好地理解和参与技术战略的制定过程。但不可否认的是&#xff0c;创建一个有效的技术路线图并…

付费计量系统实体和接口(6)

13.7.3 Sub-classification of the Metering functions计量功能的子分级 The Metering function primarily deals with the measurement of the quantity of delivered electrical energy to the consumer. These measurements are made available for use by other functions …

qt 3D编程

Qt 3D是一个用于构建交互式3D图形应用的库&#xff0c;它是Qt库的一 部分。Qt 3D提供了一组C和QMLAPI&#xff0c;帮助开发者快速构 建3D应用程序。 一、核心模块 Qt3DCore 功能&#xff1a;提供3D场景中的基本概念&#xff0c;如实体&#xff08;Entity&#xff09;、组件&…

R语言运行地理探测器模型

地理探测器&#xff08;GeoDetector&#xff09;是一种用于空间分析的统计模型&#xff0c;它能够探测空间分异性以及揭示其背后驱动力的一组方法。它的核心思想是基于这样的假设&#xff1a;如果某个自变量对某个因变量有重要影响&#xff0c;那么自变量和因变量的空间分布应该…

java的LinkedList

java的LinkedList 什么是LinkedListLinkedList的模拟实现LinkedList的使用ArrayList和LinkedList的区别 什么是LinkedList LinkedList的官方文档 LinkedList的底层是双向链表结构&#xff0c;由于链表没有将元素存储在连续的空间中&#xff0c;元素存储在单独的结点中&#xf…

【Redis】Set类型的常用命令与应用场景

目录 1.命令小结 2.命令解析 3.编码方式与应用场景 1.命令小结 &#xff08;1&#xff09;set的特点 1&#xff09;set中存放的数据也都是String类型 2&#xff09;set集合中的元素是无须的 3&#xff09;set集合中的元素是唯一的&#xff0c;不可重复 &#xff08;2&a…

MySql 之 Binglog 复制

复制是一种将数据从一个 MySQL 数据库服务器异步复制到另一个的技术。使用 MySQL 复制选项&#xff0c;您可以复制所有数据库、选定的数据库甚至选定的表&#xff0c;具体取决于您的使用情况。 前提条件 确保在源服务器上启用了二进制日志记录。确保复制配置中的所有服务器都有…

uniapp——h5的控制台调试、h5调试

介绍 小程序在调试的时候可以打开调试模式&#xff0c;可以看到console.log的打印情况。 但是H5运行到手机上没有默认的调试的模式&#xff0c;但是可以人为手动加一个。 如何实现 1、main.js文件 import Vconsole from ‘vconsole’ /** 关闭正式环境打印日志&#xff…

Centos7.5 安装和配置jdk17

目录 一、下载JDK17包 二、将安装包放入服务器 三、解压jdk包到/usr/lib/jvm 四、修改JDK环境配置 1、打开配置文件 2、最后一行插入 3、立即生效 4、检查版本 一、下载JDK17包 访问网址:Java Downloads | Oraclehttps://www.oracle.com/java/technologies/downloads…

音频功放工作原理:【B类】

上一节我们讲了A类音频功放的工作原理&#xff0c;也知道了它的优缺点&#xff1a; A类功放优点&#xff1a;高增益&#xff0c;低失真&#xff0c;音质好 A类功放缺点&#xff1a;热量高&#xff0c;效率低&#xff0c;功率小 为了解决A类功放的缺点&#xff0c;业界又引入…

重学SpringBoot3-集成Redis(十)之实时统计和分析

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-集成Redis&#xff08;十&#xff09;之实时统计和分析 1. 实时统计和分析的常见场景2. 使用 Redis 数据结构进行实时统计3. 使用Redis String实现计数器…

原来机器学习那么简单——K近邻回归

引言&#xff1a; 在正文开始之前&#xff0c;首先给大家介绍一个不错的人工智能学习教程&#xff1a;https://www.captainbed.cn/bbs。其中包含了机器学习、深度学习、强化学习等系列教程&#xff0c;感兴趣的读者可以自行查阅。 一、什么是K近邻回归&#xff1f; K近邻回归&…

10.9QT对话框以及QT的事件机制处理

MouseMoveEvent(鼠标移动事件) widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 设置窗口为无边框&#xff0c;去掉标题栏等装饰this->setWi…

电脑缺失msvcr120.dll怎样修复,马上教你6种修复方法

在用电脑的时候&#xff0c;经常会碰到各种错误提示&#xff0c;比如“msvcr120.dll丢失”&#xff0c;导致的结果就是某些程序无法正常启动。那么&#xff0c;这个dll文件到底是啥&#xff0c;为什么会丢失&#xff0c;怎么解决呢&#xff1f;将通过这篇文章详细解释一下&…

智能优化算法-引力搜索优化算法(GSA)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1.内容介绍 引力搜索优化算法 (Gravitational Search Algorithm, GSA) 是一种基于牛顿万有引力定律的元启发式优化算法&#xff0c;由Rashedi等人于2009年提出。GSA通过模拟天体之间的引力作用来搜索最优解&#xff0c;适用…

[ROS2]解决PyQt5和sip的各种报错问题 stderr: qt_gui_cpp

前言 编译ros环境的时候遇到了qt_gui_cpp各种编译问题&#xff0c;但是鉴于网上解决方法基本没有&#xff0c;故记录下来帮助后来者。整篇文章总结下来就是一句话&#xff1a;PyQt5和sip安装过程或安装版本有问题&#xff0c;需要重新安装。 问题与解决方法 如果PyQt5你是正…

P-Tuning v2:一种普遍有效的提示调整方法

人工智能咨询培训老师叶梓 转载标明出处 预训练语言模型通过微调&#xff08;fine-tuning&#xff09;来适应特定任务虽然效果显著&#xff0c;但存在训练成本高、参数存储量大等问题。为了解决这些问题&#xff0c;清华大学的研究者们提出了一种名为P-Tuning v2的提示调整&am…

colab+ngork本地访问多模态大模型

allenai/Molmo-7B-D-0924 1&#xff09;colab准备环境&#xff0c;我这里用的是l4 2&#xff09;安装对应的python库 !pip install transformers Pillow requests einops!pip install accelerate>0.26.0 bitsandbytes!pip install --no-deps accelerate bitsandbytes !p…

怎么将手机备忘录传送至电脑

在数字化时代&#xff0c;手机备忘录已成为我们生活中不可或缺的一部分。无论是记录购物清单、工作事项&#xff0c;还是灵感闪现的瞬间&#xff0c;手机备忘录都能随时记录下这些宝贵的信息&#xff0c;帮助我们防止遗忘。然而&#xff0c;有时候我们需要将这些备忘录内容转移…