项目简介
敏捷日志记录系统是一个灵活的日志记录插件,能为基于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】