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

相关文章:

  • 绩效考核自动化:SpringBoot月度管理
  • freertos 任务调度—抢占式, 时间片
  • src/pyaudio/device_api.c:9:10: fatal error: portaudio.h: 没有那个文件或目录
  • LeetCode 206. 反转链表
  • 龙芯+FreeRTOS+LVGL实战笔记(新)——06添加二级按钮
  • 【运维监控】influxdb 2.0+telegraf 监控tomcat 8.5运行情况(2)
  • 微信小程序npm扩展能力探究
  • Java代理模式
  • VMware中共享文件夹没了怎么办?
  • Windows 系统中安装 PEM 证书
  • Linux环境下安装FFmpeg的教程
  • 【网络安全】DNS重绑定原理详析
  • 说一下解除docker限制内存警告
  • 风控——贷中管理介绍
  • ApplicationVerifier介绍说明
  • 设计模式之组合设计模式
  • 【机器人建模和控制】读书笔记
  • go语言给结构体绑定方法
  • IP网络广播服务平台upload接口存在任意文件上传漏洞
  • 【网络安全】学过编程就是黑客?
  • 为何选择上海?两家外企提到营商环境、人才资源……
  • “80后”北京市东城区副区长王智勇获公示拟任区委常委
  • 免签国+1,中乌(兹别克斯坦)互免签证协定6月生效
  • 习近平同巴西总统卢拉会谈
  • 外国游客“在华扫货”热:“带空箱子到中国!”
  • 超新星|18岁冲击中超金靴,王钰栋的未来无限可能