SpringBoot-logback不同业务模块输出不同的日志文件

news2024/11/24 12:10:44

        工作中有些业务模块日志输出比较频繁,影响其他业务模块问题排查,可以使用logback实现根据不同的业务输出到不同的日志文件

1、在resource下创建文件logback-spring.xml

2、在logback.xml中添加如下配置

<?xml version="1.0" encoding="UTF-8"?>

<configuration debug="false" scan="false">
    <springProperty scop="context" name="spring.application.name" source="spring.application.name"
                    defaultValue="atm-at-web"/>
    <property name="log.path" value="logs/${spring.application.name}"/>
    <!-- Console log output -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{MM-dd HH:mm:ss.SSS} %-5level [%logger{50}] - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- Log file info output -->
    <appender name="info" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/info.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/%d{yyyy-MM}/info.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <maxFileSize>10MB</maxFileSize>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- Log file error output -->
    <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <maxFileSize>10MB</maxFileSize>
            <maxHistory>30</maxHistory>
            <totalSizeCap>3GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
    </appender>

    <!-- Log file extApi output -->
    <appender name="extApiAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/extApi.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/%d{yyyy-MM}/extApi.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <maxFileSize>10MB</maxFileSize>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- Level: FATAL 0  ERROR 3  WARN 4  INFO 6  DEBUG 7 -->
    <root level="INFO">
        <appender-ref ref="console"/>
        <appender-ref ref="info"/>
        <appender-ref ref="error"/>
    </root>

    <logger name="extApi" additivity="false" level="INFO">
        <appender-ref ref="console"/>
        <appender-ref ref="extApiAppender"/>
    </logger>

</configuration>

PS:我们定义了一个名为 extApi 的appender,在相关业务代码中,我们还需要定义一个logger与它绑定。

private final static Logger extApiLogger = LoggerFactory.getLogger("extApi");

3、日志文件

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

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

相关文章

GIS入门:GIS到底是什么,GIS的概念、构成结构、功能和应用

地理信息系统&#xff08;Geographic Information System, 简称GIS&#xff09; GIS从广义上讲&#xff0c;是一门集地理学与地图学以及遥感和计算机科学等众多学科于一体的综合性前沿交叉学科&#xff1b; 从狭义上说&#xff0c;它是在计算机硬、软件系统支持下&#xff0c;对…

Java笔记041-反射/类加载、通过反射获取类的结构信息、通过反射创建对象、通过反射访问类中的成员

反射 类加载 基本说明 ClassLoad_ 反射机制是Java实现动态语言的关键&#xff0c;也就是通过反射实现类动态加载。 静态加载&#xff1a;编译时加载相关的类&#xff0c;如果没有则报错&#xff0c;依赖性太强动态加载&#xff1a;运行时加载需要的类&#xff0c;如果运行时…

C语言_指针进阶(下)

文章目录 前言一、函数指针数组二、指向函数指针数组的指针三. 回调函数四. qsort 函数五. 数组名的理解 sizeof5.1 数组名的理解&#xff08;二维数组)5.1.1 数组名的理解 strlen5.1.2 例题&#xff1a;例一.例二.例三.例四. 前言 一、函数指针数组 数组是一个存放相同类型数…

LVS负载均衡群集(NAT模式、IP隧道模式、DR模式)

目录 一、集群 1.1 含义即特点 1.2 群集的类型 1.3 LVS 的三种工作模式&#xff1a; 1.4 LVS 调度算法 1.5 负载均衡群集的结构 1.6 ipvsadm 工具 二、NAT模式 LVS-NAT模式配置步骤&#xff1a; 实例&#xff1a; 配置NFS服务器192.168.20.100 配置web1服务器192.168…

C++ istringstream类学习

istringstream类用于执行C风格的串流的输入操作&#xff1b; ostringstream类用于执行C风格的串流的输出操作&#xff1b; strstream类同时可以支持C风格的串流的输入输出操作&#xff1b; istringstream的构造函数原形如下&#xff1a; istringstream::istringstream(strin…

Tomcat Arbitrary Write-file Vulnerability through PUT Method (CVE-2017-12615)

漏洞描述 CVE-2017-12615 对应的漏洞为任意文件写入&#xff0c;由于配置不当&#xff08;非默认配置&#xff09;&#xff0c;导致可以使用 PUT 方法上传任意文件 。Tomcat设置了写权限&#xff08;readonlyfalse&#xff09;&#xff0c;导致可以使用PUT方法上传任意文件 影…

mysql 快速上传数据

快速上传数据 这个应该是比inset into values更快的插入数据的办法了。 不过要求挺苛刻的&#xff0c;数据要整理成和表格一致&#xff0c;也就是说每条数据都是完整的一条&#xff0c;而不是一部分。 下面的示例我以***为分割符划分字段&#xff0c;以 \n来分割每条数据。 LO…

代码随想录笔记--贪心算法篇

1--贪心算法 主要思路&#xff1a; 通过局部最优推导全局最优&#xff1b; 2--分发饼干 主要思路&#xff1a; 基于贪心算法&#xff0c;每次都尽可能用大的饼干去喂胃口大的孩子&#xff0c;贪心地节省饼干&#xff1b; #include <iostream> #include <vector> #i…

5.后端·新建子模块与开发(自动模式)

文章目录 学习资料自动生成模式创建后端三层 学习资料 https://www.bilibili.com/video/BV13g411Y7GS?p11&spm_id_frompageDriver&vd_sourceed09a620bf87401694f763818a31c91e 自动生成模式创建后端三层 首先&#xff0c;运行起来若依的前后端整个项目&#xff0c;…

【Java 基础篇】Java 自然排序:使用 Comparable 接口详解

在 Java 编程中&#xff0c;我们经常需要对对象进行排序。为了实现排序&#xff0c;Java 提供了 java.lang.Comparable 接口&#xff0c;它允许我们定义对象之间的自然顺序。本篇博客将深入探讨如何使用 Comparable 接口来进行自然排序&#xff0c;包括接口的基本概念、使用示例…

【2023年11月第四版教材】第12章《质量管理》(第三部分)

第12章《质量管理》&#xff08;第三部分&#xff09; 5 管理质量5.1 管理质量★★★ &#xff08;17下9&#xff09;5.2 数据分析★★★5.3 数据表现★★★5.4 审计★★★ 6 控制质量6.1 控制质量6.2 数据收集★★★6.3 数据分析 ★★★6.4 数据表现★★★ 5 管理质量 组过程…

《gRPC vs REST:何时选择哪一个》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…

C++--day5

实现一个图形类&#xff08;Shape&#xff09;&#xff0c;包含受保护成员属性&#xff1a;周长、面积&#xff0c; 公共成员函数&#xff1a;特殊成员函数书写 定义一个圆形类&#xff08;Circle&#xff09;&#xff0c;继承自图形类&#xff0c;包含私有属性&#xff1a;半…

Pytorch从零开始实战02

Pytorch从零开始实战——彩色图像识别 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——彩色图像识别环境准备数据集模型选择模型训练数据可视化 环境准备 本文基于Jupyter notebook&#xff0c;使用Python3.8&#xff0c;Pytorch2.0.1cu118…

【大数据】美团 DB 数据同步到数据仓库的架构与实践

美团 DB 数据同步到数据仓库的架构与实践 1.背景2.整体架构3.Binlog 实时采集4.离线还原 MySQL 数据5.Kafka2Hive6.对 Camus 的二次开发7.Checkdone 的检测逻辑8.Merge9.Merge 流程举例10.实践一&#xff1a;分库分表的支持11.实践二&#xff1a;删除事件的支持12.总结与展望 1…

Powdersigner + PostgreSql 同步表结构到pg数据库

要用Powdersigner同步表结构到PostgreSql数据库&#xff0c; Powdersigner 版本是 16.5&#xff0c;当前模型是mysql的 1&#xff0c;修改当前模型内容为postgresql的 Database --> Change Current DBMS 选择PostgreSQL 最大版本的&#xff08;因为Powdersigner内置版本一…

Python3 XML处理模块详解

目录 一&#xff1a;XML文件格式 二&#xff1a;ElementTree解析XML文件 三&#xff1a;Element之查找 四&#xff1a;Element之修改 五&#xff1a;Element之删除 六&#xff1a;Element之增加 xml是一种固有的分层数据格式&#xff0c;最自然的表示方式是解析成树状&am…

基于springboot实现的最便捷的解析word文档

概述 导入excel或word是一些web应用常见的需求&#xff0c;本demo详细介绍怎么导入word,读取word里面的数据 详细 一、运行效果 二、实现过程 ①、首先用maven快速搭建一个spring boot 项目 <properties><project.build.sourceEncoding>UTF-8</project.buil…

unity 使用Photon进行网络同步

Pun使用教程 第一步&#xff1a;请确保使用的 Unity 版本等于或高于 2017.4&#xff08;不建议使用测试版&#xff09;创建一个新项目。 第二步&#xff1a;打开资源商店并找到 PUN 2 资源并下载/安装它。 导入所有资源后&#xff0c;让 Unity 重新编译。 第三步&#xf…

stm32---外部中断

一、EXTI STM32F10x外部中断/事件控制器&#xff08;EXTI&#xff09;包含多达20个用于产生事件/中断请求的边沿检测器。EXTI的每根输入线都可单独进行配置&#xff0c;以选择类型&#xff08;中断或事件&#xff09;和相应的触发事件&#xff08;上升沿触发、下降沿触发…