springboot配置logback-spring.xml文件详解

2023-11-14

生产配置模板:(可以作为模板直接使用)
使用该配置会生成两个文件夹 info和error,分别存放info和error级别的日志文件,具体见配置文件。

<?xml version="1.0" encoding="UTF-8"?>
<!--property用于配置变量,可通过${LOG_PATH} 取对应的值-->
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_PATH" value="c:/mylog/my"/>
<property name="PATTERN"
          value="%d{yyyy-MM-dd HH:mm:ss} === [%thread] === %-5level === %logger{50} ==== %msg%n"/>
<property name="CONSOLE_LOG_PATTERN"
          value="%date{yyyy-MM-dd HH:mm:ss} | %highlight(%5p) | %green(%thread) | %boldMagenta(%logger) | %cyan(%msg%n)"/>

<contextName>logback</contextName>

<!--输出到控制台,一个appender定义一种输出策略,可以定义多个-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <!--filter中定义要输出的日志级别,例如:输出info级别以上的日志,默认是info-->
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>info</level>
    </filter>
    <!--日志输出编码格式化-->
    <encoder>
        <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        <charset>UTF-8</charset>
    </encoder>
</appender>


<!-- 输出到文件info,日期滚动记录 -->
<appender name="logInfoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <!--<Prudent>true</Prudent>-->
    <!--如果只是想要 Info 级别的日志,只是过滤 info 还是会输出 Error 日志,因为 Error 的级别高,所以我们使用下面的策略,可以避免输出 Error 的日志-->
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <!--过滤 其他只留info-->
        <level>info</level>
        <!--匹配到就禁止-->
        <onMatch>ACCEPT</onMatch>
        <!--没有匹配到就允许-->
        <onMismatch>DENY</onMismatch>
    </filter>
    <!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则
           如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天
           的日志改名为今天的日期。即,<File> 的日志都是当天的。-->
    <!--滚动策略,按照时间滚动 TimeBasedRollingPolicy 每天会生成一个日志文件-->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
        <fileNamePattern>${LOG_PATH}/info/iot-info-%d{yyyy-MM-dd}.log</fileNamePattern>
        <!--只保留最近90天的日志-->
        <maxHistory>90</maxHistory>
        <!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
        <!--<totalSizeCap>1GB</totalSizeCap>-->
    </rollingPolicy>

    <append>true</append>

    <!--展示格式 layout-->
    <!--<layout class="ch.qos.logback.classic.PatternLayout">-->
        <!--<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>-->
    <!--</layout>-->
    <!--日志输出编码格式化-->
    <encoder>
        <charset>GBK</charset>
        <pattern>${PATTERN}</pattern>
    </encoder>
</appender>


<!--输出到文件error,日期滚动记录 -->
<appender name="logErrorFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <!--只记录error-->
        <level>error</level>
        <onMatch>ACCEPT</onMatch>
        <onMismatch>DENY</onMismatch>
    </filter>

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <FileNamePattern>${LOG_PATH}/error/iot-error-%d{yyyy-MM-dd}.log</FileNamePattern>
        <maxHistory>90</maxHistory>
    </rollingPolicy>

    <!--追加记录-->
    <append>true</append>

    <encoder>
        <charset>GBK</charset>
        <pattern>${PATTERN}</pattern>
    </encoder>
</appender>
<!--开发环境-->
<springProfile name="dev">
    <!--必选节点,用来指定最基础的日志输出级别-->
    <root level="DEBUG">

        <appender-ref ref="logInfoFile"/>

        <appender-ref ref="logErrorFile"/>

        <appender-ref ref="console"/>

        <!--<appender-ref ref="DBAPPENDER"/>-->

    </root>

</springProfile>

<!--生产环境-->
<springProfile name="pro">
    <!--必选节点,用来指定最基础的日志输出级别-->
    <root level="INFO">
        <appender-ref ref="logInfoFile"/>

        <appender-ref ref="logErrorFile"/>

        <appender-ref ref="console"/>

        <!--<appender-ref ref="DBAPPENDER"/>-->
    </root>

</springProfile>








<!--日志异步到数据库  -->

<!--<appender name="DBAPPENDER" class="ch.qos.logback.classic.db.DBAppender">-->

<!--<connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">-->

<!--<dataSource class="com.zaxxer.hikari.HikariDataSource">-->

<!--<driverClassName>com.mysql.jdbc.Driver</driverClassName>-->

<!--<jdbcUrl>jdbc:mysql://localhost:3306/albedo-new?useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false</jdbcUrl>-->

<!--<username>root</username>-->

<!--<password>123456</password>-->

<!--<poolName>HikariPool-logback</poolName>-->

<!--</dataSource>-->

<!--</connectionSource>-->

<!--&lt;!&ndash; 此日志文件只记录info级别的 &ndash;&gt;-->

<!--<filter class="ch.qos.logback.classic.filter.LevelFilter">-->

<!--<level>warn</level>-->

<!--<onMatch>ACCEPT</onMatch>-->

<!--<onMismatch>DENY</onMismatch>-->

<!--</filter>-->

<!--&lt;!&ndash; 此日志文件只记录info级别的 &ndash;&gt;-->

<!--<filter class="ch.qos.logback.classic.filter.LevelFilter">-->

<!--<level>error</level>-->

<!--<onMatch>ACCEPT</onMatch>-->

<!--<onMismatch>DENY</onMismatch>-->

<!--</filter>-->

<!--</appender>-->

转载自https://blog.csdn.net/gexiaoyizhimei/article/details/93907932
根据自己的实际情况略有改动

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot配置logback-spring.xml文件详解 的相关文章

随机推荐

  • CRM系统基本的模板示例

    CRM SSM总结 1 步骤 1 1 创建WEB项目 1 2 导入JAR lib下 包以及静态资源 css fonts js jsp 2 数据库 CREATE DATABASE crm ssm 客户来源 电话营销 网络营销 推广活动 促销活
  • 模式识别原理(Pattern Recognition)、概念、系统、特征选择和特征

    1 1 模式识别的基本概念 一 广义定义 1 模式 一个客观事物的描述 一个可用来仿效的完善的例子 2 模式识别 按哲学的定义是一个 外部信息到达感觉器官 并被转换成有意义的感觉经验 的过程 例 识别热水 字迹等 二 狭义的定义 1 模式
  • ML-数据分析模板

    文章目录 机器学习 数据分析模板 Objective Data Set Information Attribute Information INPUT 单特征与缺失值展示 Feature Cleaning Engineering 标签转换
  • Window10与Linux虚拟机实现文件传输

    前言介绍 对于许多需要使用Linux虚拟机的小伙伴来说 如何实现虚拟机和主机间的文件传输是一个问题 尤其是有些文件虚拟机下载不太方便 这时文件共享就比较重要了 当然 虚拟平台的软件提供商也有着一些解决方案 如VM下的Tools工具或者VB下
  • 5种Python雪花飘落代码(建议收藏)

    前言 本文章向大家介绍用 Python 实现雪花飘落效果 运行以下代码 你将会看到一个美丽的雪花效果 你可以根据自己的需求 调整代码中的参数值以及其他细节 第一种 普通雪花代码 import turtle import random def
  • sqrt函数

    sqrt 函数的用法 求三角形面积 今天刷题的时候看到了三角形面积 突然想到老师上课讲过 这不是好简单 就直接上代码 include
  • Faster R-CNN算法

    Faster R CNN算法是作者Ross Girshick对Fast R CNN算法的一种改进 Fast R CNN在速度和精度上都有了不错的结果 但仍有一些不足之处 Faster R CNN算法同样使用VGG 16网络结构 检测速度在G
  • 联想笔记本声音太小怎么办_电脑音量调到最大了还是声音太小,怎么办啊??...

    展开全部 准备一台电脑 计算机需e68a843231313335323631343130323136353331333433643633要安装驱动程序向导 或备份声卡驱动程序或驱动程序光盘 以下步骤是win7操作界面截图演示 1 首先 点击
  • java中的访问修饰符详解

    主要讲述一下java中protected的修饰控制范围 在叙述protected修饰符使用之前 先来说一下java 可以发现 开发java程序是一个时时刻刻都在编写类 开发类 定义类的过程 类里面可以有main方法 main方法不管存在那个
  • ppt太大怎么压缩变小呢?五种方法灵活运用

    为了更好地压缩PPT文件 还有一些制作PPT时的建议 使用压缩后的图片 在将图片插入到PPT中时 可以将其压缩后再插入 这样可以显著减小文件大小 废弃多余的幻灯片 将不需要的幻灯片删除或隐藏掉 这样可以减小PPT文件的大小 关闭自动保存 在
  • VC++中窗口过程函数及其消息发送、响应机制介绍

    在VC 中 窗口过程函数是应用程序定义的一个函数 主要功能是处理发送给窗口的消息 窗口过程函数的定义是 virtual LRESULT WindowProc UINT message WPARAM wParam LPARAM lParam
  • maven本地私服取jar包后再进行反编译获取源代码

    1 先去maven安装目录寻找setting xml D maven apache maven 3 1 1 conf 利用记事本打开 寻找标签 nexus central nexus mirror http XXX XXX XX XX 80
  • 【深度学习】CNN模型处理简单时间序列

    本文使用CNN模型 Conv1d卷积进行时间序列的分析处理 将数据导入模型后 可以运行 但模型预测精度不高 且输出十分不稳定 此模型仅用于熟悉CNN模型的基本结构 如有错误 还望海涵 目录 一 数据介绍 二 数据预处理 三 模型代码 四 模
  • 使用fastjson报错Exception in thread “main“ com.alibaba.fastjson.JSONException: syntax error, pos 1, line

    使用fastjson报错Exception in thread main com alibaba fastjson JSONException syntax error pos 1 line 1 column 2 问题背景 解决方案 总结
  • GDB调试技巧实战--为release程序加载符号

    问题 内存数据分析是开发人员的重要技能 特别是对于C C 程序员而言 微软表示 微软每年分配的CVE中有70 仍然是内存安全问题 内存数据就像事故现场 人们可以在其中发现内存数据重叠或损坏的内存数据 从而可能提供有价值的洞察力 揭示问题的根
  • AlexNet详解

    入门小菜鸟 希望像做笔记记录自己学的东西 也希望能帮助到同样入门的人 更希望大佬们帮忙纠错啦 侵权立删 完整代码在我的github上 有需要的朋友可以康康 GitHub tt s t Deep Learning Store some of
  • excel表数据多线程导入数据库

    Student table 一个学生表 excel表 Student实体 Data public class Student private int id private int studentId private int teacherI
  • Linux端查看.a/.so库文件信息,包含架构等等

    nm XXX a 上面的命令可列出 o a so中定义的函数 全局变量等等 readelf h XXX a 这命令可列出所有so的OS ABI 架构信息 类别 32 64位 等等
  • dynamic_cast与 static _cast:类的上下行转换

    A为基类 B为派生类 现在定义 A pA B pB 一般来说 pB可以转换为pA 把派生类的指针或引用转换成基类表示 称之为上行转换 但反之一般是不行的 也就是将pA转换为pB 把基类指针或引用转换成派生类表示 称之为下行转换 这种行为直接
  • springboot配置logback-spring.xml文件详解

    生产配置模板 可以作为模板直接使用 使用该配置会生成两个文件夹 info和error 分别存放info和error级别的日志文件 具体见配置文件