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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 数据结构算法——排序算法
  • 【计算机毕业设计】微信小程序的美甲店铺座位预约系统
  • 小程序面试题七
  • 图论篇--代码随想录算法训练营第五十六天打卡| 108. 冗余连接,109. 冗余连接II
  • PHP一键约课高效健身智能健身管理系统小程序源码
  • 线性规划及其MATLAB实现
  • Java发邮件:如何配置SMTP服务器实现发信?
  • 免费且实用:UI设计常用的颜色参考网站和一些Icon设计网站
  • jmeter之setUP、tearDown线程组
  • 用于大数据分析的数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响
  • 【C++ Primer Plus习题】15.4
  • INIC6081量产工具下载,initio6081开卡软件分享
  • 机器线程数量突然激增的原因是什么?
  • 【网络】高级IO——五种IO模式
  • STM32G070 CubeMX配置多通道/单通道ADC+DMA流程 LL库
  • 【node学习】协程
  • 【剑指offer】让抽象问题具体化
  • input的行数自动增减
  • isset在php5.6-和php7.0+的一些差异
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Lucene解析 - 基本概念
  • PaddlePaddle-GitHub的正确打开姿势
  • PHP CLI应用的调试原理
  • Spark学习笔记之相关记录
  • SpringBoot几种定时任务的实现方式
  • text-decoration与color属性
  • 给第三方使用接口的 URL 签名实现
  • 普通函数和构造函数的区别
  • 赢得Docker挑战最佳实践
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 2017年360最后一道编程题
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (2)STM32单片机上位机
  • (3) cmake编译多个cpp文件
  • (35)远程识别(又称无人机识别)(二)
  • (6)设计一个TimeMap
  • (7)摄像机和云台
  • (BFS)hdoj2377-Bus Pass
  • (Java)【深基9.例1】选举学生会
  • (七)Flink Watermark
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • ***监测系统的构建(chkrootkit )
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .gitignore
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .NET性能优化(文摘)
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • @Repository 注解