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

spring项目整合log4j2日志框架(含log4j无法打印出日志的情况,含解决办法)

Spring整合Log4j2的整体流程

Lo

1)导入log4j-core依赖

 <!--导入日志框架-->

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.20.0</version>
        </dependency>

2)创建log4j2.xml文件

        在项目中resource目录下创建log4j2.xml文件

3)配置log4j.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <!--配置控制台输出日志-->
        <Console name="Console" target="SYSTEM_OUT">
            <!--日志的输出格式-->
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <!--配置文件输出日志-->
        <File name="File" fileName="d:/logs/app.log">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <!--日志级别为debug-->
        <Root level="debug">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>
 

4)测试

        注:这个需要使用spring框架创建对象才能显示出log4j日志

Logj4无法打印的日志情况

        1)不是使用spring框架创建对象,使用反射创建对象

        2)不是使用spring框架创建对象,使用手动创建对象的方式创建对象

以上两种都没有日志打印

3)解决办法

        1.通过导入log4j-slf4j2-impl jar包

<dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j2-impl</artifactId>
            <version>2.23.1</version>
</dependency>

        2.然后在创建Logger

private static Logger logger= LoggerFactory.getLogger(当前类.class);

 

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xiji.Users;

public class CreateUsersByHandTest {

    private static Logger logger= LoggerFactory.getLogger(CreateUsersByHandTest.class);

    @Test
    public void createUsers(){
        System.out.println("通过手写创建");

        Users users = new Users();
        /**
            手动输出日志即可解决
        */
        logger.info("通过log4j2打印日志"+users);
        System.out.println(users);
        users.userInfo();
    }
}
 

        3.测试结果

相关文章:

spring项目整合log4j2日志框架(含log4j无法打印出日志的情况,含解决办法)

Spring整合Log4j2的整体流程 Lo 1&#xff09;导入log4j-core依赖 <!--导入日志框架--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <ver…...

Linux网络:应用层协议http/https

认识URL URL是我们平时说的网址 eg&#xff1a;http常见的URL http://user:passwww.example.jp:80/dir/index.htm?uid1#ch1 注意&#xff1a; 服务器地址就是域名&#xff0c;相当于服务器ip地址 像http服务绑定80端口号&#xff0c;https服务绑定443端口。ssh服务端口绑定…...

transforemr网络理解

1.transformer网络中数据的流动过程&#xff1a; 2.transformer中残差的理解&#xff1a; 残差连接&#xff08;Residual Connection&#xff09; 的核心思想就是通过将输入与经过变化的输出相加&#xff0c;来最大限度地保留原始信息。 transforemr中注意力层网络和前馈神经…...

C++插件管理系统

插件加载目录结构 execute plug.exe plugify.dll plugify.pconfig res cpp-lang-module.pmodule example_plugin.pplugin bin cpp-lang-module.dll example_plugin.dll plugify.pconfig { "baseDir&…...

MyBatis 方法重载的陷阱及解决方案

在使用 MyBatis 进行开发时&#xff0c;尤其是使用注解模式&#xff08;如 Select、Insert 等&#xff09;时&#xff0c;开发者常常会遇到这样一个问题&#xff1a;为什么我的方法重载不能正常工作&#xff1f; 即使在 Java 中允许方法名相同但参数不同的重载&#xff0c;MyBa…...

STM32 ADC+DMA导致写FLASH失败

最近用STM32G070系列的ADCDMA采样时&#xff0c;遇到了一些小坑记录一下&#xff1b; 一、ADCDMA采样时进入死循环&#xff1b; 解决方法&#xff1a;ADC-dma死循环问题_stm32 adc dma死机-CSDN博客 将ADC的DMA中断调整为最高&#xff0c;且增大ADCHAL_ADC_Start_DMA(&ha…...

Python AttributeError: ‘dict_values’ object has no attribute ‘index’

Python AttributeError: ‘dict_values’ object has no attribute ‘index’ 在Python编程中&#xff0c;AttributeError 是一个常见的异常类型&#xff0c;通常发生在尝试访问对象没有的属性或方法时。今天&#xff0c;我们将深入探讨一个具体的 AttributeError&#xff1a;“…...

三丰云免费虚拟主机和免费云服务器评测

三丰云是一家提供免费虚拟主机和免费云服务器的知名服务提供商&#xff0c;深受用户好评。在这篇评测文章中&#xff0c;我们将对三丰云的免费虚拟主机和免费云服务器进行细致评测。 首先&#xff0c;我们来看看三丰云的免费虚拟主机服务。三丰云的免费虚拟主机提供稳定的服务器…...

iOS18更新暂停卡住?iOS18升级失败解决办法分享

最近&#xff0c;苹果发布了iOS 18&#xff0c;许多用户都迫不及待更新更新系统体验新功能。然而&#xff0c;一些用户在网上反馈在iOS 18 更新在安装过程中会卡住或暂停&#xff0c;无法正常升级成功。 如果遇到“iOS 18更新暂停或卡住”问题&#xff0c;不用担心。在本文中&a…...

单片机软件工程师确认硬件

文章目录 简介流程确认能连接usb和调试器确认芯片信息确认芯片存储是否正常确认屏幕是否能点亮确认其他硬件 方式方法 简介 硬件工程师给出板子后&#xff0c;后面就是软件工程师的事儿了。 通常来说并不会很顺利。 流程 确认能连接usb和调试器 也是在“计算机管理”中 或者…...

乐鑫无线WiFi芯片模组,家电设备智能联网新体验,启明云端乐鑫代理商

在当今这个数字化飞速发展的时代&#xff0c;智能家居和物联网(IoT)设备已经成为我们生活中不可或缺的一部分。随着技术的进步&#xff0c;我们对于设备联网的需求也在不断提升。 智能家居、智能门锁、智能医疗设备等&#xff0c;这些设备通过联网实现了数据的实时传输和远程控…...

小米嵌入式面试题目RTOS面试题目 嵌入式面试题目

第一章-非RTOS bootloader工作流程 MCU启动流程 通信协议&#xff0c;SPI IIC MCU怎么选型&#xff0c;STM32F1和F4有什么区别 外部RAM和内部RAM区别&#xff0c;怎么分配 外部总线和内部总线区别 MCU上的固件&#xff0c;数据是怎么分配的 MCU启动流程 IAP是怎么升级的…...

Iceberg与SparkSQL写操作整合

前言 spark操作iceberg之前先要配置spark catalogs&#xff0c;详情参考Iceberg与Spark整合环境配置。 有些操作需要在spark3中开启iceberg sql扩展。 Iceberg使用Apache Spark的DataSourceV2 API来实现数据源和catalog。Spark DSv2是一个不断发展的API&#xff0c;在Spark版…...

MYSQL1

一、为什么学习数据库 1、岗位技能需求 2、现在的世界,得数据者得天下 3、存储数据的方法 4、程序,网站中,大量数据如何长久保存? 5、数据库是几乎软件体系中最核心的一个存在。 二、数据库相关概念 (一)数据库DB 数据库是将大量数据保存起来&#xff0c;通过计算机加…...

一文解答Swin Transformer + 代码【详解】

文章目录 1、Swin Transformer的介绍1.1 Swin Transformer解决图像问题的挑战1.2 Swin Transformer解决图像问题的方法 2、Swin Transformer的具体过程2.1 Patch Partition 和 Linear Embedding2.2 W-MSA、SW-MSA2.3 Swin Transformer代码解析2.3.1 代码解释 2.4 W-MSA和SW-MSA…...

Vue3:<Teleport>传送门组件的使用和注意事项

你好&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏、评论和关注。 Vue3 引入了一个新的内置组件 <Teleport>&#xff0c;它允许你将子组件树渲染到 DOM 中的另一个位置&#xff0c;而不是在父组件的模板中直接渲染。这对于需要跳出当前组件的 DOM 层级结构进行渲染的…...

项目之家:又一家项目信息发布合作对接及一手接单平台

这几天“小三劝退师时薪700”的消息甚嚣尘上&#xff0c;只能说从某一侧面来看心理咨询师这个职业的前景还是可以的&#xff0c;有兴趣的朋友可以关注下。话说上一篇文章给大家介绍了U客直谈&#xff0c;今天趁热打铁再给大家分享一个地推拉新项目合作平台~项目之家&#xff1a…...

02-java实习工作一个多月-经历分享

一、描述一下最近不写博客的原因 离我发java实习的工作的第一天的博客已经过去了一个多月了&#xff0c;本来还没入职的情况是打算每天工作都要写一份博客来记录一下的&#xff08;最坏的情况也是每周至少总结一下的&#xff09;&#xff0c;其实这个第一天的博客都是在公司快…...

JVM 调优篇2 jvm的内存结构以及堆栈参数设置与查看

一 jvm的内存模型 2.1 jvm内存模型概览 二 实操案例 2.1 设置和查看栈大小 1.代码 /*** 演示栈中的异常:StackOverflowError** author shkstart* create 2020 下午 9:08** 设置栈的大小&#xff1a; -Xss (-XX:ThreadStackSize)** -XX:PrintFlagsFinal*/ public class S…...

微信可以设置自动回复吗?

在日常的微信聊天中&#xff0c;我们或许会频繁地遭遇客户提出的相同问题&#xff0c;尤其是对于从事销售工作的朋友们来说&#xff0c;客户在添加好友后的第一句话往往是“在吗”或者“你好”。当我们的好友数量众多时&#xff0c;手动逐个回复可能会耗费大量的时间。因此&…...

同样数据源走RTMP播放延迟低还是RTSP低?

背景 在比较同一个数据源&#xff0c;是RTMP播放延迟低还是RTSP延迟低之前&#xff0c;我们先看看RTMP和RTSP的区别&#xff0c;我们知道&#xff0c;RTMP&#xff08;Real-Time Messaging Protocol&#xff09;和RTSP&#xff08;Real Time Streaming Protocol&#xff09;是…...

@开发者极客们,网易2024低代码大赛来啦

极客们&#xff0c;网易云信拍了拍你 9月6日起&#xff0c;2024网易低代码大赛正式开启啦&#xff01; 低代码大赛是由网易主办的权威赛事&#xff0c;鼓励开发者们用低代码开发的方式快速搭建应用&#xff0c;并最终以作品决出优胜。 从2022年11月起&#xff0c;网易低代码大赛…...

数据分析-16-时间序列分析的常用模型

1 什么是时间序列 时间序列是一组按时间顺序排列的数据点的集合,通常以固定的时间间隔进行观测。这些数据点可以是按小时、天、月甚至年进行采样的。时间序列在许多领域中都有广泛应用,例如金融、经济学、气象学和工程等。 时间序列的分析可以帮助我们理解和预测未来的趋势和…...

SpringMVC使用:类型转换数据格式化数据验证

01-类型转换器 先在pom.xml里面导入依赖&#xff0c;一个是mvc框架的依赖&#xff0c;一个是junit依赖 然后在web.xml里面导入以下配置&#xff08;配置的详细说明和用法我在前面文章中有写到&#xff09; 创建此测试类的方法用于测试springmvc是具备自动类型转换功能的 user属…...

多语言ASO – 本地化的10个技巧

ASO优化是一个复杂的领域&#xff0c;即使你只关注讲英语的用户。如果您想面向国际受众并在全球范围内发展您的应用程序业务&#xff0c;您必须在App Store和Google Play Store上本地化应用程序的产品页面。不过&#xff0c;应用程序商店本地化的过程也有很多陷阱。 应用商店本…...

C程序设计——函数0

函数定义 前面说过C语言是结构化的程序设计语言&#xff0c;他把所有问题抽象为数据和对数据的操作&#xff0c;前面讲的变量、常量&#xff0c;都是数据。现在开始讲对数据操作——函数。 C语言的函数&#xff0c;定义方式如下&#xff1a; 返回值类型 函数名(参数列表) {…...

第二十一章 rust与动静态库的结合使用

注意 本系列文章已升级、转移至我的自建站点中,本章原文为:rust与动静态库的结合使用 目录 注意一、前言二、库生成三、库使用四、总结一、前言 rust中多了很多类型的库,比如前面章节中我们提到基本的bin与lib这两种crate类型库。 如果你在命令行执行下列语句: rustc -…...

修改服务器DNS解析及修改自动对时时区

修改服务器DNS解析&#xff1a; 1、搜索一下当地的DNS服务器的地址 2、登录服务器&#xff0c;执行 vim /etc/resolv.conf文件&#xff0c;在nameserver字段后填写DNS服务的地址 3、chattr i /etc/resolv.conf 加上不可修改权限&#xff0c;防止重启DNS被修改 修改自动对时…...

中科院TOP“灌水神刊”合集!盘点那些“又牛又水”的国人友好SCI

【SciencePub学术】本期&#xff0c;小编给大家推荐几本“又牛又水”的期刊&#xff0c;并且都是清一色的国人友好刊&#xff0c;涵盖各领域&#xff0c;以供各位学者参考&#xff01; NO.1 Nature Communications IF&#xff1a;14.7 分区&#xff1a;JCR1区中科院1区TOP 年…...

Python列表浅拷贝的陷阱与破解之道

引言 在Python编程世界中&#xff0c;列表的拷贝操作看似简单&#xff0c;却常常隐藏着一些令人意想不到的陷阱&#xff0c;尤其是当涉及到浅拷贝时。今天&#xff0c;我们将深入探讨Python列表浅拷贝现象及产生原因&#xff0c;并提供有效的解决方案&#xff0c;帮助你写出更…...