spring boot集成loback日志配置
1.spring boot中application.properties配置
logging.config=classpath:loback-config.xml
2.配置loback-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。 当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false"><!--需要使用springProperty,才可使用application.properties(或application.yml)中的值 --><springProperty name="app.name" source="spring.application.name" default="111"/><!-- 定义日志目录 --><property name="DEBUG_LOG_PATH" value="../../logs/demo/debug"/><property name="INFO_LOG_PATH" value="../../logs/demo/info"/><property name="WARN_LOG_PATH" value="../../logs/demo/warn"/><property name="ERROR_LOG_PATH" value="../../logs/demo/error"/><!-- 定义日志保留天数 --><property name="MAX_HISTORY" value="7"/><!-- 定义日志文件总大小 --><property name="TOTAL_SIZE_CAP" value="10GB"/><!-- 定义单个日志文件大小 --><property name="MAX_FILE_SIZE" value="10MB"/><!-- 输出到控制台 --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><!-- 日志输出格式 --><!--<pattern>[%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36}: %msg%n</pattern>--><!--日期 日志等级 PID 线程名 类路径 方法名 java源文件 行号 打印信息 换行--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%5p) %green(${PID:- }) - %magenta([%15.15t]) %cyan(%C.%M\(%F:%L\)) : %msg%n</pattern><!--同上, 仅输出类路径, 不输出 方法名 java源文件 行号 --><!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%5p) %green(${PID:- }) - %magenta([%15.15t]) %cyan(%-40.40logger{40}) : %msg%n</pattern>--></encoder></appender><!-- 只输出DEBUG日志 --><appender name="DEBUG_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${DEBUG_LOG_PATH}/debug.log</file><!-- 基于文件大小和时间的滚动策略 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${DEBUG_LOG_PATH}/debug-%d{yyyy-MM-dd}-%i.log</fileNamePattern><!-- 日志文件保留天数 --><maxHistory>${MAX_HISTORY}</maxHistory><!-- 日志归档文件总大小 --><totalSizeCap>${TOTAL_SIZE_CAP}</totalSizeCap><!-- 单个日志文件大小 --><maxFileSize>${MAX_FILE_SIZE}</maxFileSize></rollingPolicy><!-- 日志输出格式 --><encoder><pattern>[%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36}: %msg%n</pattern><charset>UTF-8</charset></encoder><!-- 日志过滤 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 指定日志级别 --><level>DEBUG</level><!-- 匹配则全部接受 --><onMatch>ACCEPT</onMatch><!-- 不匹配则全部拒绝 --><onMismatch>DENY</onMismatch></filter></appender><!-- 只输出INFO日志 --><appender name="INFO_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${INFO_LOG_PATH}/info.log</file><!-- 基于文件大小和时间的滚动策略 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${INFO_LOG_PATH}/info-%d{yyyy-MM-dd}-%i.log</fileNamePattern><!-- 日志文件保留天数 --><maxHistory>${MAX_HISTORY}</maxHistory><!-- 日志归档文件总大小 --><totalSizeCap>${TOTAL_SIZE_CAP}</totalSizeCap><!-- 单个日志文件大小 --><maxFileSize>${MAX_FILE_SIZE}</maxFileSize></rollingPolicy><!-- 日志输出格式 --><encoder><pattern>[%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36}: %msg%n</pattern><charset>UTF-8</charset></encoder><!-- 日志过滤 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 指定日志级别 --><level>INFO</level><!-- 匹配则全部接受 --><onMatch>ACCEPT</onMatch><!-- 不匹配则全部拒绝 --><onMismatch>DENY</onMismatch></filter></appender><!-- 只输出WARN日志 --><appender name="WARN_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${WARN_LOG_PATH}/warn.log</file><!-- 基于文件大小和时间的滚动策略 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${WARN_LOG_PATH}/warn-%d{yyyy-MM-dd}-%i.log</fileNamePattern><!-- 日志文件保留天数 --><maxHistory>${MAX_HISTORY}</maxHistory><!-- 日志归档文件总大小 --><totalSizeCap>${TOTAL_SIZE_CAP}</totalSizeCap><!-- 单个日志文件大小 --><maxFileSize>${MAX_FILE_SIZE}</maxFileSize></rollingPolicy><!-- 日志输出格式 --><encoder><pattern>[%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36}: %msg%n</pattern><charset>UTF-8</charset></encoder><!-- 日志过滤 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 指定日志级别 --><level>WARN</level><!-- 匹配则全部接受 --><onMatch>ACCEPT</onMatch><!-- 不匹配则全部拒绝 --><onMismatch>DENY</onMismatch></filter></appender><!-- 只输出ERROR日志 --><appender name="ERROR_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${ERROR_LOG_PATH}/error.log</file><!-- 基于文件大小和时间的滚动策略 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${ERROR_LOG_PATH}/error-%d{yyyy-MM-dd}-%i.log</fileNamePattern><!-- 日志文件保留天数 --><maxHistory>${MAX_HISTORY}</maxHistory><!-- 日志归档文件总大小 --><totalSizeCap>${TOTAL_SIZE_CAP}</totalSizeCap><!-- 单个日志文件大小 --><maxFileSize>${MAX_FILE_SIZE}</maxFileSize></rollingPolicy><!-- 日志输出格式 --><encoder><pattern>[%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36}: %msg%n</pattern><charset>UTF-8</charset></encoder><!-- 日志过滤 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 指定日志级别 --><level>ERROR</level><!-- 匹配则全部接受 --><onMatch>ACCEPT</onMatch><!-- 不匹配则全部拒绝 --><onMismatch>DENY</onMismatch></filter></appender><!-- <logger>用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender>。<logger>仅有一个name属性,一个可选的level和一个可选的addtivity属性。name:用来指定受此logger约束的某一个包或者具体的某一个类。level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。如果未设置此属性,那么当前logger将会继承上级的级别。addtivity:是否向上级logger传递打印信息。默认是true --><!--使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作:第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别:--><!-- <logger name="com.xmc.biz.mapper" level="DEBUG" />--><!--root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。默认是DEBUG 可以包含零个或多个元素,标识这个appender将会添加到这个logger。--><!--用来指定受此logger约束的某一个包或者具体的某一个类。--><!-- 系统模块日志级别控制 --><logger name="com.example.demo" level="debug" /><!-- Spring日志级别控制 --><logger name="org.springframework" level="warn" /><root level="INFO"><appender-ref ref="INFO_LOG_FILE"/><appender-ref ref="ERROR_LOG_FILE"/><appender-ref ref="WARN_LOG_FILE"/><appender-ref ref="DEBUG_LOG_FILE"/><appender-ref ref="CONSOLE"/></root></configuration>
相关文章:
spring boot集成loback日志配置
1.spring boot中application.properties配置 logging.configclasspath:loback-config.xml 2.配置loback-config.xml <?xml version"1.0" encoding"UTF-8"?> <!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR <…...

【mars3d】 graphic.bindPopup(inthtml).openPopup()无需单击小车,即可在地图上自动激活弹窗的效果。
实现效果:new mars3d.graphic.FixedRoute({无需单击小车,即可在地图上实现默认打开弹窗的激活效果。↓↓↓↓↓↓↓↓ 相关链接说明: 1.popup的示例完全开源,可参考:功能示例(Vue版) | Mars3D三维可视化平台 | 火星科…...

工厂企业消防安全AI可视化视频智能监管解决方案
一、方案背景 2023年11月20日下午6时30分许,位于江苏省无锡市惠山区前洲街道的某公司突发严重火灾,共造成7人死亡。这次火灾提醒我们工业安全至关重要,企业都应该时刻保持警惕,加强安全意识和培训,提高应对突发事件的…...

【并发编程】synchornized原理
📝个人主页:五敷有你 🔥系列专栏:并发编程 ⛺️稳重求进,晒太阳 目录 Monitor概念 Java对象头 普通对象 数组对象 Monitor(锁) Monitor结构如下: 注意: 原理之synchornized 轻量…...

计算机网络-ACL访问控制列表
上一篇介绍NAT时候就看到了ACL这个东西了,这个是什么意思?有什么作用呢? 一、ACL访问控制列表 访问控制列表 (ACL, Access Control List)是由一系列permit或deny语句组成的、有序规则的列表。ACL是一个匹配工具,能够对报文进行匹配…...
论文学习记录之SeisInvNet(Deep-Learning Inversion of Seismic Data)
目录 1 INTRODUCTION—介绍 2 RELATED WORKS—相关作品 3 METHODOLOGY AND IMPLEMENTATION—方法和执行 3.1 方法 3.2 执行 4 EXPERIMENTS—实验 4.1 数据集准备 4.2 实验设置 4.3 基线模型 4.4 定向比较 4.5 定量比较 4.6 机理研究 5 CONCLUSION—结论 1 INTRODU…...
深度学习中的优化方法
深度学习中的优化问题通常指的是:寻找神经网络上的一组参数 θ \theta θ,它能显著地降低代价函数 J ( θ ) J(\theta) J(θ...

【设计模式之美】重构(三)之解耦方法论:如何通过封装、抽象、模块化、中间层等解耦代码?
文章目录 一. “解耦”概述二. 如何给代码“解耦”?1. 封装与抽象2. 中间层2.1. 引入中间层能**简化模块或类之间的依赖关系**。2.2. 引入中间层可以起到过渡的作用,能够让开发和重构同步进行,不互相干扰。 3. 模块化4. 其他设计思想和原则4.…...
Spring MVC学习之——Controller类中方法的返回值
Controller类中方法的返回值 1.返回ModelAndView RequestMapping("/hello")public ModelAndView hello(){//封装了页面和数据ModelAndView view new ModelAndView();//对这个请求的页面添加属性(数据)view.addObject("hello",&quo…...

IDEA中启动项目报堆内存溢出或者没有足够内存的错误
1.报错现象 java.lang.OutOfMemoryError: Java heap space 或者 Could not reserve enough space for object heap 2.解决办法 在运行配置中VM选项后加下面的配置: -server -XX:MaxHeapSize256m -Xms512m -Xmx512m -XX:PermSize128M -XX:MaxPermSize256m 3.JVM虚…...
Angular: DOCUMENT
不用原生的 document,是因为不利于后端渲染,所以避免使用原生浏览器的对象 import { DOCUMENT } from angular/common; import { Directive, Inject, Input, OnChanges, Output, Renderer2, SimpleChanges } from angular/core;Directive({selector: [a…...

mybatis-plus批量保存异常及效率优化
最近基于自己公司内部服务维护,发现其中调度中心近期出现不少错误日志,但是该任务却是正常执行,生成的报表数据也是正常的,所以很多天没有发现问题 这就匪夷所思了, 经仔细排查发现,是触发了feign超时hyst…...

查找局域网树莓派raspberry的mac地址和ip
依赖python库: pip install socket pip install scapy运行代码: import socket from scapy.layers.l2 import ARP, Ether, srpdef get_hostname(ip_address):try:return socket.gethostbyaddr(ip_address)[0]except socket.herror:# 未能解析主机名ret…...

乐观锁与悲观锁:高并发场景下的选择
😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…...
vue2 省市区联动组件封装
在element ui中有级联选择器el-cascader,其实已经够用了,但是在实际需求中,发现el-cascader如果有三级,数据数组必须得三个才能完全展示,所以不符合实际需求,还是自定义封装吧 需求:省市区联动数组,有多少个显示多少个 这里使用element ui得el-select组件,思路是使用…...

VScode远程开发
VScode远程开发 在SSH远程连接一文中,我么介绍了如何使用ssh远程连接Jetson nano端,但是也存在诸多不便,比如:编辑文件内容时,需要使用vi编辑器,且在一个终端内,无法同时编辑多个文件。本节将介绍一较为实用…...
芯片设计重要工具—— IBM LSF 分布式高性能计算调度平台
IBM Spectrum LSF Suites 是面向分布式高性能计算 (HPC) 的工作负载管理平台和作业调度程序。基于 Terraform 的自动化现已可用,该功能可在 IBM Cloud 上为基于 IBM Spectrum LSF 的集群供应和配置资源。 借助我们针对任务关键型 HPC 环境的集成解决方案࿰…...

RDMA Scatter Gather List详解
1. 前言 在使用RDMA操作之前,我们需要了解一些RDMA API中的一些需要的值。其中在ibv_send_wr我们需要一个sg_list的数组,sg_list是用来存放ibv_sge元素,那么什么是SGL以及什么是sge呢?对于一个使用RDMA进行开发的程序员来说&#…...

【动态规划】24子数组系列_最长湍流子数组_C++
题目链接:最长湍流子数组 目录 题目解析: 算法原理 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 编写代码 题目解析: 题目让我们求返回 arr 的 最大湍流子数组的长度 由题可得: 如果比较符号在子数组中的…...

fastJson和jackson的日期数据处理
目录 1.jackson 2.fastjson 3.总结 1.jackson jackson是spring mvc默认的JSON解析方法,前端的数据序列化处理之后,后端经过反序列化处理可以直接使用实体对象进行接收。后端接口返回实体对象,经过序列化处理后前端可以接收并进行处理。 …...

7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
Java并发编程实战 Day 11:并发设计模式
【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天,今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案,它们不仅提供了优雅的设计思路,还能显著提升系统的性能…...

RushDB开源程序 是现代应用程序和 AI 的即时数据库。建立在 Neo4j 之上
一、软件介绍 文末提供程序和源码下载 RushDB 改变了您处理图形数据的方式 — 不需要 Schema,不需要复杂的查询,只需推送数据即可。 二、Key Features ✨ 主要特点 Instant Setup: Be productive in seconds, not days 即时设置 :在几秒钟…...