springboot 整合 log4j2

日志服务

log4j

jul

jcl

logback 同样也是log4j的作者设计完成

log4j2

commons-logging

slf4j

log4j2.xml 配置详解

```xml

/app_data/logs/my_app

[%d{yyyy-MM-dd HH:mm:ss.SSS}][%-5p][%T][%c.%M:%L] %msg%xEx%n

1MB

filePattern="${log_base_dir}/$${date:yyyy_MM_dd}/my_app_debug_%d{yyyy_MM_dd_HH}_%i.log.gz">

filePattern="${log_base_dir}/$${date:yyyy_MM_dd}/my_app_info_%d{yyyy_MM_dd_HH}_%i.log.gz">

filePattern="${log_base_dir}/$${date:yyyy_MM_dd}/my_app_warn_%d{yyyy_MM_dd_HH}_%i.log.gz">

filePattern="${log_base_dir}/$${date:yyyy_MM_dd}/my_app_error_%d{yyyy_MM_dd_HH}_%i.log.gz">

filePattern="${log_base_dir}/$${date:yyyy_MM_dd}/druid_%d{yyyy_MM_dd_HH}_%i.log.gz">

```

pom.xml

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.7.11

com.lihaozhe

log

0.0.1

log

log

1.8

1.8

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-logging

org.springframework.boot

spring-boot-starter-log4j2

org.springframework.boot

spring-boot-configuration-processor

true

org.projectlombok

lombok

true

org.springframework.boot

spring-boot-starter-test

test

cn.hutool

hutool-all

5.8.16

${project.name}

org.springframework.boot

spring-boot-maven-plugin

org.projectlombok

lombok

org.apache.maven.plugins

maven-compiler-plugin

3.11.0

UTF-8

${jdk.version}

${jdk.version}

org.apache.maven.plugins

maven-surefire-plugin

2.22.2

true

自定义 log4j2.xml

filePattern="${baseDir}/debug_%i.log.%d{yyyy-MM-dd}">

filePattern="${baseDir}/info_%i.log.%d{yyyy-MM-dd}">

filePattern="${baseDir}/error_%i.log.%d{yyyy-MM-dd}">

controller

package com.lihaozhe.controller;

import cn.hutool.core.date.LocalDateTimeUtil;

import lombok.extern.slf4j.Slf4j;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

import java.time.LocalDateTime;

/**

* @author 李昊哲

* @version 1.0.0 2023/5/4 上午9:52

*/

@Slf4j

@RestController

@RequestMapping("/test")

public class TestController {

@GetMapping("/index")

public String index(HttpServletRequest request){

// 获取客户端地址

String clientAddr = request.getRemoteAddr();

// 获取客户端端口号

int clientPort = request.getRemotePort();

// 获取服务器地址

String serverAddr = request.getLocalAddr();

// 获取服务器端口号

int serverPort = request.getLocalPort();

// 获取访问api

String uri = request.getRequestURI();

String now = LocalDateTimeUtil.format(LocalDateTime.now(),"yyyy-MM-dd HH:mm:ss");

String logger = now + "," +

clientAddr + ":" + clientPort + "," +

serverAddr + ":" + serverPort + "," +

uri;

// log.trace(logger);

// log.debug(logger);

log.info(logger);

// log.warn(logger);

// log.error(logger);

// log.fatal(logger);

return logger;

}

}

项目打包

mvn package

运行 springboot 项目 jar 文件

java -jar log.jar

nohub java -jar log.jar >/dev/null 2>&1 &

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: