littlebot
Published on 2025-04-12 / 0 Visits
0

【源码】基于Spring Boot框架的敏捷日志记录系统

项目简介

敏捷日志记录系统是一个灵活的日志记录插件,能为基于Spring Boot的应用程序提供全局日志记录功能。该系统支持多种日志输出模式,如控制台、日志文件、缓存、Redis、数据库等,还可通过注解灵活配置日志记录行为。

项目的主要特性和功能

1. 灵活的日志记录配置

  • 全局开关配置:可在application.yaml文件中配置日志记录的全局开关,默认开启。
  • 日志输出配置:支持stdout(控制台)、log(日志文件)、cache(缓存)、redis(Redis数据库)、database(数据库)、none(不输出日志)等多种日志输出模式。
  • RPC访问配置:能记录Feign和RestTemplate的访问日志。
  • URL过滤器:可配置需要拦截和不需要拦截的URL正则表达式。
  • 同步/异步日志配置:默认使用异步方式记录日志,支持配置线程池参数。

2. 日志格式

  • API层日志格式:包含HTTP请求和响应相关信息,以及API执行信息。
  • 方法调用层日志格式:包含方法执行的相关信息以及返回信息。

3. 注解配置

  • @EnableAgileLogger:开启Agile Logger日志框架。
  • @AgileLogger:可作用在类或方法上,标识需要记录日志的方法。
  • @IgnoreMethods:作用在类上,设置需要忽略的方法名称,支持正则表达式。
  • @IgnoreMethod:作用在方法上,表示需要忽略的方法。

4. 扩展功能

  • 自定义ID生成器:支持自定义LOG_ID和TRACK_ID生成器。
  • 自定义全局忽略器:支持自定义全局URL忽略器和全局方法忽略器。
  • 日志拦截器:支持请求日志拦截器和调用日志拦截器,用于处理和修改日志内容。
  • 自定义日志记录器:支持用户自定义日志记录器,将日志输出到指定位置或修改日志内容。

5. 版本控制和Mock数据

  • 版本控制:在方法上使用@Versioner注解,可对请求参数或响应结果进行变更。
  • Mock数据:在方法上使用@Mocker注解,可对响应结果进行变更,适用于测试或未上线前进行模拟返回。

安装使用步骤

1. 添加依赖

在项目的pom.xml文件中添加以下依赖: xml <dependency> <artifactId>agile-logger-boot-starter</artifactId> <version>${latest.version}</version> </dependency>

2. 配置启动类

在Spring Boot的启动类上添加@EnableAgileLogger注解: java @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }

3. 配置日志输出模式

application.yaml文件中配置日志输出模式: yaml sourceflag: agile-logger: enable: true log-mode: stdout

4. 配置URL过滤器

application.yaml文件中配置需要拦截和不需要拦截的URL正则表达式: yaml sourceflag: agile-logger: enable: true log-mode: stdout url-filter: includes: [".*"] excludes: ["/favicon.ico", "/check/health/.*"]

5. 配置同步/异步日志

application.yaml文件中配置同步/异步日志: yaml sourceflag: agile-logger: enable: true log-mode: stdout async: enable: true # 开启异步,默认:true async-params: core-pool-size: 4 # 核心线程数量,默认:CPU 核心数 maximum-pool-size: 9 # 最大线程数量,默认:2 * CPU 核心数 + 1 queue-size: 1024 # 队列大小,默认:1024 keep-alive-time: 60000 # 线程空闲时间,单位:毫秒

6. 使用注解配置日志记录

在需要记录日志的方法上添加@AgileLogger注解: ```java @RestController @RequestMapping(value = "/test") public class TestController {

@Autowired
private TestService testService;

@GetMapping
@AgileLogger(tag = "API", level = AbstractEntity.LEVEL_INFO)
public R sayHello(@RequestParam String name) {
    String wording = testService.sayHello(name);
    return R.success().setData(wording);
}

} ```

7. 版本控制和Mock数据

在需要进行版本控制或Mock数据的方法上添加@Versioner@Mocker注解: ```java @RestController public class LoginController {

@Autowired
private LoginService loginService;

@PostMapping("/login")
@Versioner(type = LoginVersion.class)
@Mocker(value = "{username: lisi, password: 1234}")
public UserInfo login(@RequestBody Identity identity) {
    UserInfo userInfo = loginService.login(identity);
    return userInfo;
}

} ``` 通过以上步骤,可在Spring Boot项目中集成和配置敏捷日志记录系统,实现灵活的日志记录和管理。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】