当前位置: 首页 > 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.测试结果

http://www.lryc.cn/news/433779.html

相关文章:

  • Linux网络:应用层协议http/https
  • transforemr网络理解
  • C++插件管理系统
  • MyBatis 方法重载的陷阱及解决方案
  • STM32 ADC+DMA导致写FLASH失败
  • Python AttributeError: ‘dict_values’ object has no attribute ‘index’
  • 三丰云免费虚拟主机和免费云服务器评测
  • iOS18更新暂停卡住?iOS18升级失败解决办法分享
  • 单片机软件工程师确认硬件
  • 乐鑫无线WiFi芯片模组,家电设备智能联网新体验,启明云端乐鑫代理商
  • 小米嵌入式面试题目RTOS面试题目 嵌入式面试题目
  • Iceberg与SparkSQL写操作整合
  • MYSQL1
  • 一文解答Swin Transformer + 代码【详解】
  • Vue3:<Teleport>传送门组件的使用和注意事项
  • 项目之家:又一家项目信息发布合作对接及一手接单平台
  • 02-java实习工作一个多月-经历分享
  • JVM 调优篇2 jvm的内存结构以及堆栈参数设置与查看
  • 微信可以设置自动回复吗?
  • 同样数据源走RTMP播放延迟低还是RTSP低?
  • @开发者极客们,网易2024低代码大赛来啦
  • 数据分析-16-时间序列分析的常用模型
  • SpringMVC使用:类型转换数据格式化数据验证
  • 多语言ASO – 本地化的10个技巧
  • C程序设计——函数0
  • 第二十一章 rust与动静态库的结合使用
  • 修改服务器DNS解析及修改自动对时时区
  • 中科院TOP“灌水神刊”合集!盘点那些“又牛又水”的国人友好SCI
  • Python列表浅拷贝的陷阱与破解之道
  • 开放式系统互连(OSI)模型的实际意义