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

在springboot项目中引入log4j 2.x

步骤 1:排除 Spring Boot 默认的日志依赖

Spring Boot 默认使用 Logback 作为日志框架,所以需要先排除它,在 pom.xml(如果是 Maven 项目) 中添加如下配置:

<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:添加 Log4j 2.x 依赖

在 pom.xml 中添加 Log4j 2.x 的依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
步骤 3:配置 Log4j 2.x

在 src/main/resources 目录下创建 log4j2.xml 文件,以下是一个简单的配置示例:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %m%n"/>
        </Console>
        <File name="File" fileName="app.log">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %m%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>

这个配置将日志同时输出到控制台和 app.log 文件中。

步骤 4:使用日志

在 Java 代码中使用日志,示例如下:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class YourApplication implements CommandLineRunner {
    private static final Logger logger = LoggerFactory.getLogger(YourApplication.class);

    public static void main(String[] args) {
        SpringApplication.run(YourApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        logger.info("This is an info log message.");
        logger.error("This is an error log message.");
    }
}

在其他类使用需要引入,例如在controller使用

    
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@RestController
@RequestMapping("/leeYqsbBasic")
public class LeeYqsbBasicController {
    private static final Logger logger = LoggerFactory.getLogger(LeeSxsDjController.class);
    @PostMapping("/getByCondition2")
    public Result getByCondition2(@RequestBody LeeYqsbBasicVo leeYqsbBasicVo) {
        logger.info("接收到请求,leeYqsbBasicVo = {}", leeYqsbBasicVo.toString());
    }
}

自定义日志格式

输出例子

logger.info("接收到请求==>leeYqsbBasicVo = {}", leeYqsbBasicVo.toString());
logger.info("接收到请求==>leeYqsbBasicVo = {}", "哈哈");
2025-03-06 17:36:26 [http-nio-80-exec-2] INFO  LeeSxsDjController:50 - 接收到请求==>leeYqsbBasicVo = LeeYqsbBasicVo{lccb_sfdxyq='是', lccb_szsxsid='', key=''}
2025-03-06 17:40:02 [http-nio-80-exec-2] INFO  LeeSxsDjController:50 - 接收到请求==>leeYqsbBasicVo = 哈哈

http://www.dtcms.com/a/54098.html

相关文章:

  • mysql进阶(三)
  • 【CSS 】Class Variance Authority CSS 类名管理工具库
  • JVM与性能调优详解
  • 香港电讯CE2.0网络全面升级,100G服务支援企业关键应用
  • Unity InputField + ScrollRect实现微信聊天输入框功能
  • unity学习64,第3个小游戏:一个2D跑酷游戏
  • 如何用更少的内存训练你的PyTorch模型?深度学习GPU内存优化策略总结
  • Linux 上离线安装 python3
  • 哪些培训课程适合学习PostgreSQL中级认证知识?
  • 前端Vue3面试题
  • blender 坐标系 金属度
  • 基于多目标向日葵优化算法(Multi-objective Sunflower Optimization,MOSFO)的移动机器人路径规划研究,MATLAB代码
  • 小程序路径复制
  • 18年老牌软件,完美解锁pro!
  • Java 导出大数据到 Excel 表格
  • DeepSeek group-limited expert routing和负载均衡
  • Secret Cow Code S
  • PS内发光、外发光
  • 关于读写锁:有个线程在读,能写吗?有个线程在写,能读吗?
  • python 同一行显示多条语句
  • 探秘Transformer系列之(9)--- 位置编码分类
  • Java 大视界 -- 基于 Java 的大数据分布式任务调度系统设计与实现(117)
  • Hexo常用指令大全
  • 递归—基础算法
  • 【Java数据结构】前K个高频单词
  • Linux - 网络基础(应用层,传输层)
  • 详细解析MFC第一个桌面应用程序
  • 零基础C语言学习日志23(动态内存管理)
  • Windows下安装VMware Workstation 17并设置支持MacOS
  • 基于单片机的室外休闲智能座椅设计(论文+源码)