当前位置: 首页 > news >正文

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()无需单击小车,即可在地图上自动激活弹窗的效果。

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

工厂企业消防安全AI可视化视频智能监管解决方案

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

【并发编程】synchornized原理

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

计算机网络-ACL访问控制列表

上一篇介绍NAT时候就看到了ACL这个东西了&#xff0c;这个是什么意思&#xff1f;有什么作用呢&#xff1f; 一、ACL访问控制列表 访问控制列表 (ACL, Access Control List)是由一系列permit或deny语句组成的、有序规则的列表。ACL是一个匹配工具&#xff0c;能够对报文进行匹配…...

论文学习记录之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(θ...

【设计模式之美】重构(三)之解耦方法论:如何通过封装、抽象、模块化、中间层等解耦代码?

文章目录 一. “解耦”概述二. 如何给代码“解耦”&#xff1f;1. 封装与抽象2. 中间层2.1. 引入中间层能**简化模块或类之间的依赖关系**。2.2. 引入中间层可以起到过渡的作用&#xff0c;能够让开发和重构同步进行&#xff0c;不互相干扰。 3. 模块化4. 其他设计思想和原则4.…...

Spring MVC学习之——Controller类中方法的返回值

Controller类中方法的返回值 1.返回ModelAndView RequestMapping("/hello")public ModelAndView hello(){//封装了页面和数据ModelAndView view new ModelAndView();//对这个请求的页面添加属性&#xff08;数据&#xff09;view.addObject("hello",&quo…...

IDEA中启动项目报堆内存溢出或者没有足够内存的错误

1.报错现象 java.lang.OutOfMemoryError: Java heap space 或者 Could not reserve enough space for object heap 2.解决办法 在运行配置中VM选项后加下面的配置&#xff1a; -server -XX:MaxHeapSize256m -Xms512m -Xmx512m -XX:PermSize128M -XX:MaxPermSize256m 3.JVM虚…...

Angular: DOCUMENT

不用原生的 document&#xff0c;是因为不利于后端渲染&#xff0c;所以避免使用原生浏览器的对象 import { DOCUMENT } from angular/common; import { Directive, Inject, Input, OnChanges, Output, Renderer2, SimpleChanges } from angular/core;Directive({selector: [a…...

mybatis-plus批量保存异常及效率优化

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

查找局域网树莓派raspberry的mac地址和ip

依赖python库&#xff1a; pip install socket pip install scapy运行代码&#xff1a; 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…...

乐观锁与悲观锁:高并发场景下的选择

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…...

vue2 省市区联动组件封装

在element ui中有级联选择器el-cascader,其实已经够用了,但是在实际需求中,发现el-cascader如果有三级,数据数组必须得三个才能完全展示,所以不符合实际需求,还是自定义封装吧 需求:省市区联动数组,有多少个显示多少个 这里使用element ui得el-select组件,思路是使用…...

VScode远程开发

VScode远程开发 在SSH远程连接一文中&#xff0c;我么介绍了如何使用ssh远程连接Jetson nano端&#xff0c;但是也存在诸多不便&#xff0c;比如:编辑文件内容时&#xff0c;需要使用vi编辑器&#xff0c;且在一个终端内&#xff0c;无法同时编辑多个文件。本节将介绍一较为实用…...

芯片设计重要工具—— IBM LSF 分布式高性能计算调度平台

IBM Spectrum LSF Suites 是面向分布式高性能计算 (HPC) 的工作负载管理平台和作业调度程序。基于 Terraform 的自动化现已可用&#xff0c;该功能可在 IBM Cloud 上为基于 IBM Spectrum LSF 的集群供应和配置资源。 借助我们针对任务关键型 HPC 环境的集成解决方案&#xff0…...

RDMA Scatter Gather List详解

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

【动态规划】24子数组系列_最长湍流子数组_C++

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

fastJson和jackson的日期数据处理

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

书生·浦语大模型实战营第五节课笔记及作业

LMDeploy 大模型量化部署实践 1 大模型部署背景 1.1 模型部署及大模型特点 1.2 大模型部署挑战及方案 2 LMDeploy简介 2.1 核心功能-量化 2.2 核心功能-推理引擎TurboMind 2.1 核心功能-推理服务api server 3 动手实践及作业 按照文档LMDeploy 的量化和部署中的步骤在Intern…...

如何在CentOS 7 中基于OpenSSL 3.0 搭建Python 3.0 环境

1、OpenSSL 1.1 原因 [rootlocalhost ~]# openssl version OpenSSL 1.0.2k-fips 26 Jan 2017 [rootlocalhost ~]#通过执行openssl version可知Linux系统已经安装了OpenSSL&#xff0c;但该版本较低&#xff1b;Python 3 要求 OpenSSL版本不能低于1.1.1&#xff0c;否则安装P…...

爬虫接口获取外汇数据(汇率,外汇储备,贸易顺差,美国CPI,M2,国债利率)

akshare是一个很好用的财经数据api接口&#xff0c;完全免费&#xff01;&#xff01;和Tushare不一样。 除了我标题显示的数据外&#xff0c;他还提供各种股票数据&#xff0c;债券数据&#xff0c;外汇&#xff0c;期货&#xff0c;宏观经济&#xff0c;基金&#xff0c;银行…...

Spring Cloud和微服务架构的关系

大话Spring Cloud 在Java悠久的历史长河中(其实也就十来年)&#xff0c;有一个框架自诞生之初就成了Java企业级开发领域的弄潮儿&#xff0c;它以开放的姿态不断引领着技术改革(我们管他叫Java领域的“改革开放”)&#xff0c;它就是久经考验的企业级开发框架&#xff0c;改革…...

C++:通过ofstream写入二进制文件内容

C++:通过ifstream读取二进制文件内容_c++ ifstream 二进制读取-CSDN博客 介绍了读取二进制文件的方法。 本文介绍一下写入二进制数据到文件的方法: 1.通过write #include <fstream> #include <string> using namespace std; int main() {int data = 0x0102030…...

系统配置dns主从服务器

一、准备两台主机&#xff0c;区分主从 二、完全区域传送 1、主DNS服务器配置 #安装相关的包 [rootoula1 ~]# yum install bind -y#关闭防火墙 [rootoula1 ~]# systemctl stop firewalld [rootoula1 ~]# setenforce 0#修改配置主文件 [rootoula1 ~]# vim /etc/named.conf opt…...

【git】解决网络连接问题

ssh: connect to host github.com port 22: Connection timed out $ ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository. bash: ssh:: command not found bash: fatal:: command not found无效 检查网络&#xf…...

限制API接口访问速率

文章目录 依赖注解aophelperTest 免责声明&#xff1a;本人无意侵权&#xff0c;奈何找不到原文作者&#xff0c;也找不到网址&#xff0c;于是自己记录一下&#xff0c;如果有侵权之嫌&#xff0c;请联系我删除文章 依赖 <!-- https://mvnrepository.com/artifact/com.goo…...

广东省第三届职业技能大赛“网络安全项目”B模块--数字取证解析

广东省第三届职业技能大赛“网络安全项目”B模块任务书 PS: 关注鱼影安全第一部分 网络安全事件响应第二部分 数字取证调查任务 3: 网络数据包分析取证解析:第三部分 应用程序安全:需要环境可以私信博主~PS: 关注鱼影安全 模块 B 竞赛项目试题 本文件为:广东省第三届职业技…...

全链路压力测试:现代软件工程中的重要性

全链路压力测试不仅可以确保系统在高负载下的性能和稳定性&#xff0c;还能帮助企业进行有效的风险管理和性能优化。在快速发展的互联网时代&#xff0c;全链路压力测试已成为确保软件产品质量的关键步骤。 1、测试环境搭建 测试应在与生产环境尽可能相似的环境中进行&#xff…...