# 自定义日志starter **Repository Path**: Saborking/custom-log-starter ## Basic Information - **Project Name**: 自定义日志starter - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-23 - **Last Updated**: 2025-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Boot 自定义 Starter 演示项目 文章地址: ## 项目简介 本项目展示了如何创建和使用自定义的 Spring Boot Starter。项目包含两个示例 Starter: - `log-spring-boot-starter`: 一个简单的日志记录 Starter 示例 - `logaspect`: 一个完整且功能丰富的日志切面 Starter ## 项目结构 - `log-spring-boot-starter`: 简单日志 Starter 示例 - `logaspect`: 完整的日志切面 Starter - `logaspect-test`: 演示如何使用 logaspect starter 的测试项目 ## 模块说明 ### log-spring-boot-starter 这是一个基础的 Starter 示例,展示了创建 Spring Boot Starter 的最小要求: - 使用 AOP 实现简单的方法执行前后日志记录 - 支持通过`@Log`注解标记需要记录日志的方法 - 通过`logging.aspect.enabled`属性控制是否启用 ### logaspect 这是一个功能完整的日志记录 Starter,提供了更丰富的功能: - 支持注解方式和全局方式进行日志记录 - 通过`@LogRecord`注解提供细粒度的日志配置 - 支持记录方法参数、返回结果和执行时间 - 支持不同日志级别(INFO, DEBUG, WARN, ERROR) - 可配置包排除规则,避免记录不必要的类 - 提供可扩展的`LogRecordService`接口,支持自定义日志处理逻辑 ## 使用方法 ### 使用 log-spring-boot-starter 1. 添加依赖: ```xml com.example log-spring-boot-starter 0.0.1-SNAPSHOT ``` 2. 在需要记录日志的方法上添加`@Log`注解: ```java import com.example.logspringbootstarter.annotation.Log; @Log public void yourMethod() { // 方法实现 } ``` 3. 配置属性(可选): ```properties # 启用或禁用日志切面 logging.aspect.enabled=true ``` ### 使用 logaspect 1. 添加依赖: ```xml com.example log-aspect-spring-boot-starter 0.0.1-SNAPSHOT ``` 2. 使用注解记录特定方法: ```java import com.example.logaspect.annotation.LogRecord; import com.example.logaspect.annotation.LogRecord.LogLevel; @LogRecord( description = "查询用户信息", recordParams = true, recordResult = true, recordExecutionTime = true, level = LogLevel.INFO ) public User getUserById(Long id) { // 方法实现 } ``` 3. 配置属性: ```properties # 基本配置 logging.aspect.enabled=true logging.aspect.enable-annotation-aspect=true logging.aspect.enable-global-aspect=false # 全局日志配置 logging.aspect.record-params=true logging.aspect.record-result=true logging.aspect.record-execution-time=true # 排除特定包 logging.aspect.exclude-packages=org.springframework,java.lang ``` 4. 自定义日志记录服务: ```java import com.example.logaspect.service.LogRecordService; @Component public class CustomLogRecordService implements LogRecordService { // 实现接口方法 } ```