logback-spring.xml 小记

news2024/11/25 23:00:52
  • 为什么不用logback.xml 名字

加载顺序:logback.xml>application.yml>logback-spring.xml

使用xml中使用到配置文件属性时,就会报错

  • 为什么logback中记录不到运行时报错

logback获取不到堆栈错误

解决办法:在全局错误出使用log.error()指定输出

  • 为什么打印不出来mybatis-plus的sql日志

配置mq,使用 org.apache.ibatis.logging.stdout.StdOutImpl 使用的是System.out.println(s);

所以打印不出来

控制台打印

正确使用:

 配置mq,使用 org.apache.ibatis.logging.slf4j.Slf4jImpl,并且配置项目mapper目录为DEBUG

 控制台打印,看前面带有DEBUG

 参考文章(博主有源码详细解释):springboot 下mybatis-plus 如何打印sql日志和参数到日志文件_jsqlparsercountoptimize sql=-CSDN博客

当然可以自己定义打印sql,与 StdOutImpl 一样实现org.apache.ibatis.logging.Log,进行编辑

 附带logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- scan 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 -->
<!-- scanPeriod 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false">

    <!-- 生成文件名前缀 -->
    <springProperty name="FILE_PREFIX" source="logging.file.name" />
    <!-- 输出文件路径 -->
    <springProperty name="OPEN_FILE_PATH" source="logging.file.path"/>
    <!-- 文件保存时间 这里是7天 -->
    <property name="EXIST_TIME" value="7"/>
    <!-- 文件输出格式 -->
    <property name="PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>
    <!-- 日志文件最大的大小 -->
    <property name="MAX_FILE_SIZE" value="10MB"/>


    <!--  控制台输出  -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${PATTERN}</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- 输出到all文件 这里是全部的日志内容 -->
    <appender name="ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${OPEN_FILE_PATH}/${FILE_PREFIX}_ALL_%d{yyyy-MM-dd}-%i.log</FileNamePattern>
            <!--日志文件保留天数-->
            <MaxHistory>${EXIST_TIME}</MaxHistory>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
            <TimeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!--日志文件最大的大小-->
                <MaxFileSize>${MAX_FILE_SIZE}</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
    </appender>

    <!--输出到error文件-->
    <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${OPEN_FILE_PATH}/${FILE_PREFIX}_ERROR_%d{yyyy-MM-dd}-%i.log</FileNamePattern>
            <MaxHistory>30</MaxHistory>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
            <TimeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <MaxFileSize>${MAX_FILE_SIZE}</MaxFileSize>
            </TimeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <append>true</append>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!-- 只打印ERROR日志 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- 异步写日志 -->
    <appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold>0</discardingThreshold>
        <queueSize>1024</queueSize>
        <appender-ref ref="ALL"/>
    </appender>
    <appender name="ASYNC_ERROR_FILE" class="ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold>0</discardingThreshold>
        <queueSize>1024</queueSize>
        <appender-ref ref="error"/>
    </appender>


    <!--  默认输出info等级,然后再根据各自的拦截过滤规则去处理  -->
    <root level="info">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="ASYNC_FILE"/>
        <appender-ref ref="ASYNC_ERROR_FILE" />
    </root>


</configuration>

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

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

相关文章

2024北京智源大会开幕,智源推出大模型全家桶及全栈开源技术基座新版图,大模型先锋集结共探AGI之路

2024年6月14日&#xff0c;第六届“北京智源大会”在中关村展示中心开幕。 北京智源大会是智源研究院主办的“AI内行顶级盛会”&#xff0c;以“全球视野、思想碰撞、前沿引领”为特色&#xff0c;汇聚海内外研究者分享研究成果、探寻前沿知识、交流实践经验。2024北京智源大会…

WordPress Plugin SQL注入漏洞(CVE-2024-25832)

漏洞描述 WordPress Plugin是一种用于扩展和增强WordPress网站功能的软件插件。WordPress是一种流行的内容管理系统&#xff08;CMS&#xff09;&#xff0c;它提供了基本的网站功能&#xff0c;如文章发布、页面管理和用户权限控制等。然而&#xff0c;有时候用户需要更多的功…

基于YOLOv5m的地面飞机及油罐的目标识别(附数据集和Coovally操作步骤)

本文主要内容:详细介绍了利用无人机拍摄的地面停靠的飞机机体以及油罐&#xff0c;进行识别&#xff0c;整个过程从创建数据集到训练模型再到预测结果全部可视化操作与分析。 文末有数据集获取方式&#xff0c;请先看检测效果 现状 飞机识别&#xff0c;在军事侦察、航空安全监…

《python程序语言设计》2018版第5章第49题l利用turtle绘制乘法口诀表,结果放在最后

2024.06.09 05.49.01version 2024.06.10 05.49.02 经历了一天的奔波&#xff0c;发了两篇博客 开始来到这道题。已经22点了 turtle.penup() turtle.goto(-80, 0) turtle.pendown() turtle.write("Multiplication Table\n", font("", 18, "")) t…

音频编解码、数据流、音效处理

音频编解码 音频编码 编码流程 音频编码用于把PCM数据通过一定编码器压缩成对应的数据。 编码架构 音频解码 音频解码 用于把数据通过一定解码器转换成PCM数据。 解码架构 编解码格式 按压缩程度区分&#xff1a; 不压缩的格式(UnCompressed Audio Format)&#xff1a;P…

怎么使用海外仓系统?首次引入海外仓系统必备事项清单

本文将系统分析首次引入海外仓系统时的必备事项&#xff0c;如果您已经在使用类似的系统&#xff0c;可以根据需要跳跃性阅读。 如果现在海外仓还依赖传统的仓储系统、手动流程甚至电子表格来管理海外仓、一件代发业务&#xff0c;那必然会造成出错率高&#xff0c;运营效率低…

RFID期末复习 | 防碰撞算法 | 信源编码 | 差错控制 | 系统调制 | S50卡 | 无源标签 | 工作频率 | 自动识别

防碰撞算法 ALOHA算法 ALOHA算法是一种随机接入方法&#xff0c;其基本思想是采取标签先发言的方式&#xff0c;当标签进入读写器的识别区域内时就自动向读写器发送其自身的ID号&#xff0c;在标签发送数据的过程中&#xff0c;若有其他标签也在发送数据&#xff0c;将会发生…

如何评价2023年亚太杯数学建模竞赛?

APMCM亚太数学建模大赛的含金量在数学建模比赛中虽然不是最高水平&#xff0c;但是也属于比较高的水平了&#xff0c;值得参加试一试。 比如本次C题&#xff0c; 问题一&#xff1a;研究分析影响中国新能源汽车发展的主要因素&#xff0c;建立数学模型&#xff0c;描述这些因…

数据瀑布图升级(自备)

目录 数据整理 初级绘图 升级细节 绘制点图添加曲线和特征筛选-CSDN博客 肿瘤免疫反应瀑布图&#xff08;源于The Miller Lab&#xff09;_肿瘤瀑布图-CSDN博客 数据整理 rm(list ls()) library(ggplot2) library(dplyr) library(ggrepel)##防止标签重叠 #模拟数据 dat…

Linux-DNS域名解析服务01

BIND 域名服务基础 1、DNS&#xff08;Domain Name System&#xff09;系统的作用及类型 整个 Internet 大家庭中连接了数以亿计的服务器、个人主机&#xff0c;其中大部分的网站、邮件等服务器都使用了域名形式的地址&#xff0c;如 www.google.com、mail.163.com 等。很显然…

Vue02-第一个Vue程序

第一个Vue程序 1、什么是MVVM MVVM&#xff08;Model-View-ViewModel&#xff09;是一种软件设计模式&#xff0c;由微软WPF&#xff08;用于替代WinForm&#xff0c;以前就是用这个技术开发桌面应用程序的&#xff09;和Silverlight&#xff08;类似于Java Applet&#xff0…

Windows 安装 java 环境

搭建java开发环境 java的产品叫JDK&#xff08;java开发者工具包&#xff09;,必须安装JDK才能使用Java。 一、下载——java下载网址 二、安装 直接全部下一步就行&#xff0c;&#xff08;安装路径可以更换一下&#xff09;。 配置JAVA_HOME环境变量&#xff0c; 安装完成后…

css-Echarts图表柱状图,X轴横坐标值显示不完全问题

1.问题 在Echarts图表中当横坐标数值过多&#xff0c;或者数值过长时会导致部分横坐标不显示。数据量少或简单会默认显示完全&#xff0c;当放大时会导致部分横坐标隐藏。 更改第一个Mon字段名 会发现偶数横坐标显示隐藏&#xff1b; 2.解决方法 2.1 在x横坐标中添加interval…

办理无区域名称公司核名流程和条件及时间说明

无行政区划公司是指公司名称中不带有对应的行政区划&#xff0c;经营上不受地方限制。其名称需要通过国家工商总局核名&#xff0c;核名成功后会颁发《名称核准通知书》。之后便可以进行印章制作、银行开户等流程。详情致电咨询我或者来公司面谈。 公司国家局核名的步骤包括&am…

Node.js版本管理工具-NVM

在开发 Node.js 项目时&#xff0c;经常会遇到需要切换不同版本的 Node.js 的情况。为了方便管理和切换各个版本&#xff0c;我们可以使用一些 Node.js 版本管理工具。 Node Version Manager&#xff1a;简称NVM&#xff0c;最流行的 Node.js 版本管理工具之一。它允许我们在同…

AI大模型落地应用场景:LLM训练性能基准测试

随着 ChatGPT 的现象级走红&#xff0c;引领了AI大模型时代的变革&#xff0c;从而导致 AI 算力日益紧缺。与此同时&#xff0c;中美贸易战以及美国对华进行AI芯片相关的制裁导致 AI 算力的国产化适配势在必行。之前也分享过一些国产 AI 芯片、使用国产 AI 框架 Mindformers 基…

工业物联网关为智能制造业提供哪些支撑?天拓四方

随着科技的飞速发展&#xff0c;智能制造业已成为工业领域的转型方向。在这一转变中&#xff0c;工业物联网关发挥着至关重要的作用。作为连接物理世界与数字世界的桥梁&#xff0c;工业物联网关不仅实现了设备与设备、设备与云平台之间的互联互通&#xff0c;更通过实时数据采…

post为什么会发送两次请求详解

文章目录 导文跨域请求的预检复杂请求的定义服务器响应预检请求总结 导文 在Web开发中&#xff0c;开发者可能会遇到POST请求被发送了两次的情况&#xff0c;如下图&#xff1a; 尤其是在处理跨域请求时。这种现象可能让开发者感到困惑&#xff0c;但实际上它是浏览器安全机制…

Linux安装MySQL以及远程连接

1、Linux安装MySQL 1.1、准备解压包 MySQL5.x解压包 提取码&#xff1a;9y7n 1.2、通过rpm脚本安装 切记安装顺序&#xff1a;common --> libs --> client --> server 因为它们之间存在依赖关系&#xff0c;所以务必按照顺序安装 安装前请确保当前目录/文…

金融科技行业的融资趋势、投资者关注及未来预测

一、金融科技行业的融资趋势 金融科技行业的融资趋势近年来展现出强劲的增长势头&#xff0c;具体表现在以下几个方面&#xff1a; 融资规模持续扩大&#xff1a; 根据《全球金融科技投融资趋势报告(2023年上半年)》&#xff0c;2023年上半年全球金融科技行业投融资事件总次数…