logback日志的分片压缩

news2025/4/3 22:37:10

logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
	<springProperty name="LOG_PATH" source="shands.log.logPath" defaultValue="/var/delonix/logs/local"/>
	<springProperty name="PROJECT_NAME" source="spring.application.name" defaultValue="chan-strate"/>

	<!-- 控制台输出 -->
	<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
		<withJansi>true</withJansi>
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %highlight([%-5level] %logger{50} - %msg%n)</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>


	<!-- 系统error日志文件 -->
	<appender name="SYSTEM-ERROR"  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!-- 过滤器,只打印ERROR级别的日志 -->
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>ERROR</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>
		<prudent>false</prudent>
		<append>true</append>
		<file>${LOG_PATH}/${PROJECT_NAME}.system_error.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!--日志文件输出的文件名-->
			<FileNamePattern>${LOG_PATH}/${PROJECT_NAME}.system_error.%d{yyyy-MM-dd}.log.gz</FileNamePattern>
			<!--日志文件保留天数-->
			<MaxHistory>3</MaxHistory>
		</rollingPolicy>

		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
			<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>

	<!-- 系统info日志文件 -->
	<appender name="SYSTEM-INFO"  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
			<FileNamePattern>${LOG_PATH}/${PROJECT_NAME}.system_info.%d{yyyy-MM-dd}.%i.log.gz</FileNamePattern>
			<MaxHistory>3</MaxHistory>
			<MaxFileSize>500MB</MaxFileSize>
		</rollingPolicy>
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>

	<!-- 关闭日志 -->
	<logger name="com.alibaba.nacos.client.naming" level="OFF"/>

	<!-- 开发环境下的日志配置 -->
	<springProfile name="dev">
		<root level="INFO">
			<appender-ref ref="CONSOLE" />
			<appender-ref ref="SYSTEM-INFO" />
		</root>
	</springProfile>

	<!-- 测试环境下的日志配置 -->
	<springProfile name="test">
		<root level="INFO">
			<appender-ref ref="CONSOLE" />
			<appender-ref ref="SYSTEM-INFO" />
		</root>
	</springProfile>

	<!-- 生产环境下的日志配置 -->
	<springProfile name="pro">
		<root level="INFO">
			<appender-ref ref="CONSOLE" />
			<appender-ref ref="SYSTEM-INFO" />
			<appender-ref ref="SYSTEM-ERROR" />
		</root>
	</springProfile>

	<!-- 生产环境下的日志配置 -->
	<springProfile name="uat">
		<root level="INFO">
			<appender-ref ref="CONSOLE" />
			<appender-ref ref="SYSTEM-INFO" />
			<appender-ref ref="SYSTEM-ERROR" />
		</root>
	</springProfile>

	<appender name="LOG-JSON" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<Prudent>true</Prudent>
		<append>true</append>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<FileNamePattern>${LOG_PATH}/${PROJECT_NAME}.%d{yyyy-MM-dd}.json</FileNamePattern>
			<MaxHistory>10</MaxHistory>
		</rollingPolicy>
		<layout class="com.shands.log.layout.JsonPatternLayout"></layout>
	</appender>

	<!-- 打印com.betterwood的日志 -->
	<logger name="com.betterwood" level="INFO">
		<appender-ref ref="LOG-JSON" />
	</logger>
	<!-- 打印com.shands的日志 -->
	<logger name="com.shands" level="INFO">
		<appender-ref ref="LOG-JSON" />
	</logger>

</configuration>

最终的实现

可以设置MaxFileSize来控制文件多少大小的时候打包

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

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

相关文章

在 Jetpack Compose 中创建 AppBar

Jetpack Compose 是 Android 的现代 UI 工具库&#xff0c;使用声明性编程简化了 UI 的开发过程。在本文中&#xff0c;我们将学习如何使用 Jetpack Compose 创建 AppBar。 什么是 AppBar&#xff1f; AppBar&#xff0c;也就是我们常说的顶部应用栏&#xff0c;是用户界面的一…

基于YOLOv5系列【n/s/m/l】模型开发构建人体手势目标检测识别分析系统

人体手势检测识别是指通过计算机视觉和深度学习技术&#xff0c;自动地识别和理解人体的手势动作。这项技术可以应用于各种领域&#xff0c;如人机交互、虚拟现实、智能监控等。 下面是一般的人体手势检测识别流程&#xff1a; 数据采集&#xff1a;首先需要收集包含手势动作的…

AI自动生成代码,是时候冷静下来思考如何保障代码安全了

HDC期间可参与华为开发者大会Check新人抽奖活动&#xff0c;活动链接在文末。 华为开发者大会2023将于7月7日与各位开发者进行见面&#xff0c;本次大会的主题演讲内容为&#xff1a;AI重塑千行百业。 自从AI聊天被推出之后&#xff0c;其热度就一直是高居不下。身边的小伙伴们…

【python】—— 基础语法(二)

序言&#xff1a; 在上期&#xff0c;我们已经对python进行了初步的学习和了解。本期&#xff0c;我将继续带领大家学习关于python的基本知识&#xff01;&#xff01; 目录 &#xff08;一&#xff09;顺序语句 &#xff08;二&#xff09;条件语句 1、什么是条件语句 2、…

基于springboot实现的健身房系统(免费)

1.1 项目概述 开发语言&#xff1a;Java8 数据库&#xff1a;MySQL5.7以上版本 前端技术&#xff1a;template模板引擎 后端技术&#xff1a;Spring SpringMVC MyBaties shiro 数据库连接池&#xff1a;Druid 服务器&#xff1a;Tomcat 开发工具&#xff1a;idea na…

【C语言】十大经典排序算法-动图演示

目录 0、算法概述 0.1 算法分类 0.2 算法复杂度 1、冒泡排序&#xff08;Bubble Sort&#xff09; 1.1 算法描述 1.3 代码实现 2、选择排序&#xff08;Selection Sort&#xff09; 2.1 算法描述 2.2 动图演示 2.3 代码实现 2.4 算法分析 3、插入排序&#xff08;I…

从零开始 Spring Boot 52:@Embedded 和 @Embeddable

从零开始 Spring Boot 52&#xff1a;Embedded 和 Embeddable 图源&#xff1a;简书 (jianshu.com) 这篇文章会介绍Embedded和Embeddable两个注解在 JPA 中的用法。 简单示例 先看一个示例&#xff1a; AllArgsConstructor Builder Data Entity Table(name "user_stu…

王益分布式机器学习讲座~Random Notes (1)

0 并行计算是什么&#xff1f;并行计算框架又是什么 并行计算是一种同时使用多个计算资源&#xff08;如处理器、计算节点&#xff09;来执行计算任务的方法。通过将计算任务分解为多个子任务&#xff0c;这些子任务可以同时在不同的计算资源上执行&#xff0c;从而实现加速计…

高数基础9

目录 求函数的极值以及曲线的凹项和拐点 例题1 例题2&#xff1a; 例题3&#xff1a; 例题4&#xff1a; 例题5&#xff1a; 例题6&#xff1a; 求渐近线&#xff1a; 例题7 例题8 例题9 例题10&#xff1a; 方程的根 例题11&#xff1a; 零点定理&#xff1a; 罗…

ECharts x轴文本标签全部显示

如果echarts显示标签的时候没有全部显示 代码如下&#xff1a; xAxis: {axisLabel: {interval: 0, //设置文本标签全部显示rotate: 5, //如果内容重叠最好设置一下旋转&#xff0c;就不会重叠了formatter: function(value) { //如果再不行就用formatter自己来截取换行return va…

Echarts折线图设置折线阴影

series中lineStyle添加阴影相关的属性&#xff1a; option {......series: [{......lineStyle: {normal: {width: 4,shadowColor: rgba(0,0,0,1), shadowBlur: 10,shadowOffsetY: 10,shadowOffsetX: 0,......}},......}] };未添加阴影效果&#xff1a; 添加阴影效果&#xf…

F#奇妙游(2):dotnet命令行工具

TUI vs. GUI TUI和GUI分别是文本用户界面&#xff08;Text User Interface&#xff09;和图形&#xff08;Graphic User Interface&#xff09;&#xff0c;是计算机交互界面的两种流派。 最初的时候&#xff0c;神研制了大型机&#xff0c;其输入输出依靠卡带&#xff1b;后…

运动耳机哪款好用推荐、推荐几款专业运动耳机

无论你是健身爱好者、跑步达人还是热衷户外运动的人&#xff0c;一副优秀的运动耳机都是你在运动过程中不可或缺的伴侣。它们不仅能为你提供出色的音质&#xff0c;让你沉浸在动感的节奏中&#xff0c;还能提供稳定舒适的佩戴感&#xff0c;让你忘记耳机存在的同时享受到极致的…

深度学习05-RNN循环神经网络

概述 循环神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;是一种具有循环连接的神经网络结构&#xff0c;被广泛应用于自然语言处理、语音识别、时序数据分析等任务中。相较于传统神经网络&#xff0c;RNN的主要特点在于它可以处理序列数据&#xf…

1.1 Metasploit 工具简介

Metasploit 简称&#xff08;MSF&#xff09;是一款流行的开源渗透测试框架&#xff0c;由Rapid7公司开发&#xff0c;可以帮助安全和IT专业人士识别安全性问题&#xff0c;验证漏洞的缓解措施&#xff0c;并管理专家驱动的安全性进行评估&#xff0c;提供真正的安全风险情报。…

Nginx HTTPS实践

Nginx HTTPS实践 文章目录 Nginx HTTPS实践1.HTTPS基本概述1.1.为何需要HTTPS1.2.什么是HTTPS1.3.TLS如何实现加密 2.HTTPS实现原理2.1.加密模型-对称加密2.2.加密模型-非对称加密2.3.身份验证机构-CA2.4.HTTPS通讯原理 3.HTTPS扩展知识3.1.HTTPS证书类型3.2.HTTPS购买建议3.3.…

SCTF2023复现(部分web复现)

文章目录 SCTF2023复现webezcheck1nSycServerpypyp? SCTF2023复现 web ezcheck1n find the way to flag.Looks like there are two containers with an evil P in the configuration file of the frontend server 源码&#xff1a; <?php$FLAG "flag{fake_flag}&…

华为OD机试真题 Python 实现【分奖金】【2022Q4 100分】

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Python算法源码六、效果展示1、输入2、输出 一、题目描述 公司老板做了一笔大生意&#xff0c;想要给每位员工分配一些奖金&#xff0c;想通过游戏的方式来决定每个人分多少钱。按照员工的工号顺序&#xff0c;每个…

《移动互联网技术》 第七章 数据存取: 掌握File、SharePreferences、SQLite和ContentProvider四种数据存取方式

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

iview button组件点击第一次无效的原因解决

最近在开发页面&#xff0c;发现登陆页老是需要点击两下才能进入具体页面&#xff0c;一开始没在意&#xff0c;但是使用久了&#xff0c;就感觉肯定是问题&#xff0c;于是仔细查看了代码&#xff0c;如上图所示&#xff1a; 一开始我的跳转是放在存储token的上面的&#xff0…