springboot整合log4j2

news2024/11/28 12:53:50
  1. 导入依赖

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    
    <!--log4j2-->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.17.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.17.2</version>
    </dependency>
    

    !!!注意,屏蔽内部日志部分必须添加上,因为其自带的是logback的依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <!--屏蔽内置日志-->
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  2. 添加配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    
    <Configuration status="WARN">
        <Properties>
            <Property name="patternLayout">%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Property>
            <!--生成日志保存位置-->
            <Property name="logdir">D:/home/demo</Property>
        </Properties>
    
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <PatternLayout pattern="${patternLayout}"/>
    
    <!--            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>-->
                <!--控制台将会打印执行sql及结果-->
                <!--<ThresholdFilter level="TRACE"/>-->
                <ThresholdFilter level="DEBUG"/>
            </Console>
    
            <RollingFile name="InfoLogger"
                         fileName="D:/home/demo/debug/log.log"
                         filePattern="D:/home/demo/debug/log_%d{yyyy-MM-dd}.log" append="true">
                <PatternLayout pattern="${patternLayout}"/>
                <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
                <Policies>
                    <!--根据时间来滚动 -->
                    <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
                </Policies>
                <!-- 日志保留策略,配置只保留七天 -->
                <DefaultRolloverStrategy>
                    <Delete basePath="${logDir}/debug/" maxDepth="1">
                        <IfFileName glob="log_*.log"/>
                        <IfLastModified age="7d"/>
                    </Delete>
                </DefaultRolloverStrategy>
            </RollingFile>
    
            <!-- sql:保存sql相关日志 -->
            <RollingFile name="sql"
                         fileName="${logdir}/sql/sql.log"
                         filePattern="${logdir}/sql/sql_%d{yyyy-MM-dd}.log" append="true">
                <PatternLayout pattern="${patternLayout}"/>
                <Policies>
                    <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
                </Policies>
                <DefaultRolloverStrategy>
                    <Delete basePath="${logDir}/sql/" maxDepth="1">
                        <IfFileName glob="sql_*.log"/>
                        <IfLastModified age="7d"/>
                    </Delete>
                </DefaultRolloverStrategy>
            </RollingFile>
    
        </Appenders>
    
        <Loggers>
            <!-- 开启mybatis的sql日志, name和mybatis-config.xml的logPrefix一致 . 级别为debug或trace-->
    
            <Logger name="com.example.demo.mybatis.plus.dao" level="TRACE" additivity="false">
                <AppenderRef ref="Console"/>
                <AppenderRef ref="sql"/>
            </Logger>
    
            <Root level="debug">
                <AppenderRef ref="Console"/>
                <AppenderRef ref="InfoLogger"/>
            </Root>
    
        </Loggers>
    
    </Configuration>
    
    

    配置文件名字及位置如下图: log4j2.xml
    在这里插入图片描述

  3. application.yml配置文件

    # 日志配置
    logging:
      config: classpath:log4j2.xml
      level:
      	# 查询接口路径
        com.example.demo.mybatis.plus.dao: DEBUG
    
  4. 常见问题及解决

    ① 常见问题
    问题原因是没有排除spring-boot中自带的日志。

    11:34:08.938 [Thread-1] DEBUG org.springframework.boot.devtools.restart.classloader.RestartClassLoader - Created RestartClassLoader org.springframework.boot.devtools.restart.classloader.RestartClassLoader@21253577
    Logging system failed to initialize using configuration from 'classpath:log4j2.xml'
    java.lang.IllegalStateException: Logback configuration error detected: 
    ERROR in ch.qos.logback.core.joran.spi.Interpreter@4:17 - no applicable action for [Properties], current ElementPath  is [[Configuration][Properties]]
    

    在这里插入图片描述
    ② 解决方案
    依赖中添加org.springframework.boot,屏蔽内置日志。

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

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

相关文章

Spring Boot(五十三):SpringBoot Actuator之实现

1 场景介绍 对于一个大型的几十个、几百个微服务构成的微服务架构系统&#xff0c;在线上时通常会遇到下面一些问题&#xff0c;比如&#xff1a; 1. 如何知道哪些服务除了问题&#xff0c;如何快速定位&#xff1f; (健康状况&#xff09; 2. 如何统一监控各个微服务的性能指标…

JAVA会员营销系统源码+数据库,实体店铺会员管理和营销系统源码,采用SpringBoot + Mysql+Mybatis

会员营销系统介绍 介绍 fuint会员营销系统是一套开源的实体店铺会员管理和营销系统。系统基于前后端分离的架构&#xff0c;后端采用Java SpringBoot Mysql&#xff0c;前端基于当前流行的Uniapp&#xff0c;Element UI&#xff0c;支持小程序、h5。主要功能包含电子优惠券、…

冰蝎V4.0流量分析到攻防检测

0x01 前言 最近在改写 yso&#xff0c;觉得自己基础太差了&#xff0c;想先阅读一下 sqlmap、冰蝎以及一些其他工具的开发思路。文章可能写的不够严谨&#xff0c;有不对的地方还请师傅们多多指出。 0x02 环境搭建 这里我看的是 MountCloud 师傅所二开的冰蝎项目&#xff0c…

【关于Linux中----进程间通信方式之system V共享内存】

文章目录一、共享内存示意图二、学习共享内存前的准备工作三、共享内存函数3.1创建共享内存&#xff1a;3.2控制共享内存&#xff1a;3.3挂接和去挂接&#xff1a;一、共享内存示意图 上一篇文章中讲述的是管道的通信方式&#xff0c;而这里要讲的是操作系统层面专门为进程间通…

编译原理-链接实例分析

gcc-arm-none-eabi 工具链功能1.arm-none-eabi-gcc &#xff1a;c语言编译器&#xff0c;可以将.c文件编译为.o的执行文件2.arm-none-eabi-g &#xff1a;c编译器&#xff0c;可以将.cpp文件编译成.o的执行文件3.arm-none-eabi-ld : 链接器&#xff0c;链接所有的.o文件生成可执…

CDH6.3生产环境中禁用Kerberos

在集群启用Kerberos后&#xff0c;会对现有环境的部分代码做改造&#xff0c;有些人觉得使用起来不方便&#xff0c;想取消Kerberos。本篇文章主要介绍如何禁用CDH集群的Kerberos及禁用后对各组件服务的测试。修改了网上相关文档的一些缺陷&#xff0c;在生产环境中实际使用过通…

GIT ---- GitHub配置SSH Key的完整步骤

1. 配置 SSH Key 由于提交代码每次输入用户名和密码&#xff0c;很繁琐&#xff0c;所以直接配置 SSH Key&#xff0c;直接自动验证&#xff0c;减少提交代码的操作步骤。 2. 查看配置命令 git config --list 查看当前Git环境所有配置&#xff0c;还可以配置一些命令别名之类…

这一年,熬过许多夜,也有些许收获 | 2022年度总结

弹指一挥间&#xff0c;时间如白驹过隙。光阴似箭&#xff0c;日月如梭&#xff0c;时间如闪电&#xff0c;转瞬即逝。回望来时路&#xff0c;不觉潸然泪下… 一说到年终总结&#xff0c;好像都离不开这样煽情的开场白。但不可否认的是&#xff0c;时间确实过得很快&#xff0…

学习记录661@项目管理之项目立项管理

什么是项目立项管理 项目立项管理关注的重点在于是否要启动一个项目&#xff0c;并为其提供相应的预算支持具体来说&#xff0c;项目立项管理包括以下 5 个典型环节&#xff0c;分别是 项目建议项目可行性分析项目审批项目招投标项目合同谈判与签订 需要说明的是&#xff0c…

两大技巧教你轻松应对IB数学

同学想要在IB数学科取得好成绩&#xff0c;可以从两个方面来着手。 1.复习技巧第一个是复习技巧。这方面&#xff0c;同学要清楚知道自己读的课程&#xff0c;它的教学大纲&#xff08;Syllabus&#xff09;要求是什么&#xff0c;还有它背后想要同学达到什么样的目标。 IB数学…

浅谈DNS解析

DNS介绍IP是计算机里的地址簿&#xff0c;但是IP是由一串数字组成&#xff0c;我们的大脑很难记住&#xff0c;所以就需要定义一个符合人类记忆规则的地址&#xff0c;而这就是我们现在常用的网站域名&#xff0c;域名就是我们和计算机作为地址沟通的桥梁&#xff0c; 虽然我们…

物流企业如何确保网络安全?

随着网上购物的发展&#xff0c;人们的日常生活越来越离不开物流企业的服务了。而且在一些企业的供应链中&#xff0c;物流运输也是非常重要的一环节。与此同时&#xff0c;伴随着供应链数字化&#xff0c;透明度、速度和成本优势增加了公司对技术的兴趣。物流企业也更喜欢使用…

开放式基金净值实时数据 API 数据接口

开放式基金净值实时数据 API 数据接口 实时净值&#xff0c;全量实时数据&#xff0c;包含净值与增长率。 1. 产品功能 支持所有开放式基金净值数据查询&#xff1b;实时数据&#xff0c;包含实时净值与增长率信息&#xff0c;16:00 ~ 23:00 更新当日数据&#xff1b;包含前一…

C语言模拟实现库函数strstr

传入两个地址&#xff0c;第一个是母串首地址&#xff0c;第二个是子串首地址&#xff0c;判断是否是子串&#xff0c;如果不是&#xff0c;返回NULL&#xff0c;如果是&#xff0c;返回母串中第一次出现子串的首地址。 代码如下&#xff1a; #define _CRT_SECURE_NO_WARNING…

Android | Activity

Android Activity Activity 概念 Activity 是一种包含用户界面、主要用于与用户进行交互的Android应用组件。一个应用程序可以包含零个或多个 Activity 。 Activity 生命周期 Activity 类中定义了7个回调方法&#xff0c;覆盖了 Activity 生命周期的每一个环节。 onCreate(…

力扣sql基础篇(九)

力扣sql基础篇(九) 1 每位经理的下属员工数量 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # 如果是得出来每组都是一个值,就可以在SELECT子句中写非分组字段 # e1.reports_to IS NOT NULL是为了确保是员工,通过员工去找经理 SELECT e2.employee_…

第二章.线性回归以及非线性回归—标准方程法

第二章.线性回归以及非线性回归 2.8 标准方程法 1.公式 1).代价函数&#xff1a; 2).累加平方和用矩阵表示&#xff1a; 2.对(&#x1d466; − &#x1d44b;&#x1d464;)&#x1d447;(&#x1d466; − &#x1d44b;&#x1d464;)求导的两种布局方式&#xff1a; 1).分子…

【初阶数据结构】——写了将近 5 万字,终于把 二叉树 初阶的内容讲清楚了

文章目录前言1. 树的概念及结构1.1 树的概念1.2 树与非树1.3 树的相关概念1.4 树的表示1.5 树在实际中的运用&#xff08;表示文件系统的目录树结构&#xff09;2. 二叉树概念及结构2.1 概念2.2 现实中的二叉树2.3 特殊的二叉树2.3.1 满二叉树2.3.1 完全二叉树2.4 二叉树的性质…

2022年Tesla技术分享

Autopilot&#xff1a;允许车辆保持车道&#xff0c;跟随前车&#xff0c;弯道减速&#xff0c;等等&#xff0c;处理从停车场到城市街道&#xff0c;再到高速公路的所有驾驶过程。 一、硬件&#xff1a; 8个120W像素的摄像头&#xff0c;每秒36帧&#xff0c;360度空间&#…

牛客竞赛每日俩题 - 动态规划4

目录 经典dp1&#xff08;最长公共序列&#xff09; 经典dp2&#xff08;最长上升子序列 &#xff09; 经典dp&#xff08;最长公共序列&#xff09; 最长公共子序列__牛客网 解析&#xff1a; 有两个字符串T和S&#xff0c;S的长度为n T的长度为m 状态&#xff1a;f[i][j…