logback日志的分片压缩

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来控制文件多少大小的时候打包

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 基本数据类型(一)

文章目录 每日一句正能量Python3 基本数据类型多个变量赋值标准数据类型结语 每日一句正能量 最宝贵的生命&#xff0c;是我的灵魂所在&#xff0c;也是我&#xff0c;赖以生存的&#xff0c;最基本的保障。有了生命&#xff0c;也就有了&#xff0c;我的光明&#xff0c;我的神…

数据分析案例-航空公司满意度数据可视化

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

python---------xpath提取数据------打破局限

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com 目录 为什么要学习XPATH和LXML类库 什么是XPATH 认识XML XML的节点关系 常⽤节点选择⼯具 节点选择语法 节点修饰语法 选择未知节点 lxml库 _____________________________________________…

MySQL 高级(进阶) SQL 语句

目录 创建两个表格 location 表格​编辑 store_info 表格​编辑 ---- SELECT ---- ---- DISTINCT ---- ---- WHERE ---- ---- AND OR ---- ---- IN ---- ---- BETWEEN ---- ---- 通配符 ---- ---- LIKE ---- ---- ORDER BY ---- ---- 函数 ---- ---- GROUP BY ---- ----…

最新ai创作系统CHATGPT镜像系统源码+支持GPT4.0+支持ai绘画(MJ)+实时语音识别输入+免费更新版本

AI系统CHATGPT镜像程序源码支持GPT4支持ai绘画实时语音识别输入免费更新版本 一、AI创作系统二、系统介绍三、系统程序下载四、安装教程五、主要功能展示六、更新日志 一、AI创作系统 1、提问&#xff1a;程序已经支持GPT3.5、GPT4.0接口、支持新建会话&#xff0c;上下文记忆…

Windows11安装oneAPI和Visual Studio 2022配置Fortran并行环境

Windows11安装oneAPI和Visual Studio 2022配置Fortran并行环境 安装Visual Studio 2022 Community安装oneAPI建立Fortran工程项目测试建立单核运行的Fortran运行算例建立并行运行的Fortran运行算例 结语 安装Visual Studio 2022 Community 访问微软Visual Studio官网&#xff…

【java】HashMap扩容机制详解

文章目录 JDK1.7下的扩容机制JDK1.8下的扩容机制 JDK1.7下的扩容机制 JDK1.7下的resize()方法是这样的&#xff1a; void resize(int newCapacity) { Entry[] oldTable table; int oldCapacity oldTable.length; if (oldCapacity MAXIMUM_CAPACITY) { threshold Integer.…

git上传云效codeup

为了标识身份&#xff0c;建议先完成 Git 全局设置 git config --global user.name "xxx" git config --global user.email "xxxxxxqq.com" 1.删除本地 .git文件夹 2.云效上 添加库-新建代码库 3.在 git bash 里 按照 建好的代码库 下方的 命令行指引-…

无迹卡尔曼滤波在目标跟踪中的作用(一)

在前一节中&#xff0c;我们介绍了扩展卡尔曼滤波算法EKF在目标跟踪中的应用&#xff0c;其原理是 将非线性函数局部线性化&#xff0c;舍弃高阶泰勒项&#xff0c;只保留一次项 &#xff0c;这就不可避免地会影响结果的准确性&#xff0c;除此以外&#xff0c;实际中要计算雅各…

美团动态线程池实践思路,开源了

使用线程池 ThreadPoolExecutor 过程中你是否有以下痛点呢&#xff1f; 1.代码中创建了一个 ThreadPoolExecutor&#xff0c;但是不知道那几个核心参数设置多少比较合适 2.凭经验设置参数值&#xff0c;上线后发现需要调整&#xff0c;改代码重启服务&#xff0c;非常麻烦 3.线…

TypeScript学习(一):快速入门

文章目录 一、TypeScript 简介1、TypeScript 是什么&#xff1f;2、TypeScript 与 JavaScript 的区别3、JavaScript 的缺点4、为什么使用 TypeScript 二、TypeScript 开发环境搭建1、下载Node.js2、安装Node.js3、使用npm全局安装TypeScript4、创建一个ts文件5、使用tsc对ts文件…

【资料分享】全志科技T507-H评估板规格书(4核ARM Cortex-A53,主频1.416GHz)

1 评估板简介 创龙科技TLT507-EVM是一款基于全志科技T507-H处理器设计的4核ARM Cortex-A53国产工业评估板&#xff0c;主频高达1.416GHz&#xff0c;由核心板和评估底板组成。核心板CPU、ROM、RAM、电源、晶振等所有器件均采用国产工业级方案&#xff0c;国产化率100%。同时&a…

Nexus如何导入jar以及批量导入Maven的本地库目录

前言 本篇基于 Nexus 的版本是 nexus-3.55.0-01本方法适用Linux和WindowsWindows 需要安装Git , 使用Git Bash执行 Nexus上传依赖包的方式 上传依赖包到Nexus 服务器的方式有多种&#xff0c; 包含&#xff1a; 单个jar上传&#xff1a; 在Nexus管理台页面上传单个jar源码编…

Thinkphp5分页后携带参数进行跳转传递

问题&#xff1a; 我在tp框架中写了一个图书详情分页的&#xff0c;代码如下&#xff1a; public function verify_details(){$sell_order_numinput(sell_order_num);$resDB::table(verif)->where(["sell_order_num">$sell_order_num])->paginate(10);// 模…

(三)灌溉系统WIFI通信部分

ESP8266 ESP8266S烧录器&#xff1a;CH430C arduino离线配置esp8266参考&#xff1a;参考文章 灯光闪烁就是烧录成功 ESP8266调试入门&#xff1a;参考文章 ESP8266调试&#xff1a;参考文章 人麻了已经&#xff0c;尝试半天了&#xff0c;AT指令没回应&#xff0c;尝试刷固…

【自监督论文阅读 4】BYOL

文章目录 一、摘要二、引言三、相关工作四、方法4.1 BYOL的描述4.2 Intuitions on BYOL’s behavior&#xff08;BYOL行为的直觉&#xff09;4.3 实验细节 五、实验评估5.1 Linear evaluation on ImageNet&#xff08;ImageNet上的线性评估&#xff09;5.2 Semi-supervised tra…

Office远程代码执行漏洞(CVE-2017-11882)漏洞复现

Office远程代码执行漏洞&#xff08;CVE-2017-11882&#xff09;漏洞复现 1.漏洞原理2.在Kali平台查看漏洞利用文件3.登录目标靶机&#xff0c;打开FTP服务器4.登录Kali&#xff0c;利用FTP服务器上传payload-cale.doc文件5.登录目标靶机&#xff0c;触发doc文件&#xff0c;验…

Angular 与 PDF之五 实现方式的选择与扩展

在纯web的前提下&#xff08;不考虑移动端native&#xff09;&#xff0c;PDF的功能基本包括&#xff1a; 客户端PDF&#xff1a;最简单的场景&#xff0c;实现方式也很多&#xff0c;基本不需要有什么顾虑的地方&#xff0c;简单的实现可以参考系列第一篇文章。客户端PDF预览&…

华为战略方法论:BLM模型之差距分析(限制版)

目录 说明 差距类型 1、业绩差距 2、机会差距 3、对标差距 专栏列表 个人简介 说明 今天就来谈谈 BLM 模型中的第一把钥匙&#xff0c;也就是差距分析。 从本质上来看。 BLM 模型中的差距与你在日常生活中听到或用到的差距在意义都是一样的。 不同之处就在于问题的复…

网络安全(黑客)自学

建议一&#xff1a;黑客七个等级 黑客&#xff0c;对很多人来说充满诱惑力。很多人可以发现这门领域如同任何一门领域&#xff0c;越深入越敬畏&#xff0c;知识如海洋&#xff0c;黑客也存在一些等级&#xff0c;参考知道创宇 CEO ic&#xff08;世界顶级黑客团队 0x557 成员&…