当前位置: 首页 > 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 = 哈哈

相关文章:

  • 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 同一行显示多条语句
  • 假冒政府机构账号卖假货?“假官号”为何屡禁不绝?媒体调查
  • 俄媒:俄乌代表团抵达谈判会场
  • 广西壮族自治区党委副书记、自治区政府主席蓝天立接受审查调查
  • 中期选举后第三势力成“莎拉弹劾案”关键,菲律宾权斗更趋复杂激烈
  • 选址江南制造总局旧址,上海工业博物馆建设有新进展
  • 美国明尼苏达州发生山火,过火面积超80平方公里