SpringBoot和@Aspect实现自建Log日志功能

Posted 写程序的小王叔叔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot和@Aspect实现自建Log日志功能相关的知识,希望对你有一定的参考价值。

主页:​写程序的小王叔叔的博客​​欢迎来访

支持:点赞SpringBoot和@Aspect实现自建Log日志功能_@AspecSpringBoot和@Aspect实现自建Log日志功能_SpringBoot日志管理_02​收藏SpringBoot和@Aspect实现自建Log日志功能_@Aspec_03关注SpringBoot和@Aspect实现自建Log日志功能_SpringBoot日志管理_04

一、效果

SpringBoot和@Aspect实现自建Log日志功能_SpringBoot日志管理_05SpringBoot和@Aspect实现自建Log日志功能_系统日志_06

二、技术

JDK1.8+

SpringBoot2.0+   、@Aspect注解

mysql5.6+

三、代码干货

Log实体对象类.java


package *****.***.***.modules.sys.log.entity;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

import org.springframework.stereotype.Component;

import io.swagger.annotations.ApiModelProperty;


@Entity
@Table(name = "sys_log")
@Component
@org.hibernate.annotations.Table(comment="系统日志信息", appliesTo = "sys_log")
public class SysLog implements Serializable

private static final long serialVersionUID = 42L;

@Id
@ApiModelProperty("主键")
@Column(name="id",nullable = false,columnDefinition = "bigint(64) comment 主键")
private Long id;// 主键Id

@ApiModelProperty("日志编号")
@Column(name="log_id",columnDefinition = "varchar(255) comment 日志编号" )
private String logId;//日志编号

@ApiModelProperty("请求链接")
@Column(name="url",columnDefinition = "text comment 请求链接" )
private String url;//请求链接

@ApiModelProperty("请求方法")
@Column(name="method",columnDefinition = "text comment 请求方法" )
private String method;//请求方法

@ApiModelProperty("请求类名")
@Column(name="class_name",columnDefinition = "text comment 请求类名" )
private String className;//请求方法

@ApiModelProperty("请求方法名")
@Column(name="method_name",columnDefinition = "text comment 请求方法名" )
private String methodName;//请求方法

@ApiModelProperty("请求参数")
@Column(name="params",columnDefinition = "text comment 请求参数" )
private String params;//请求参数

@ApiModelProperty("日志类型:(1:系统日志2:业务日志)")
@Column(name="lot_type",columnDefinition = "varchar(255) comment 日志类型:(1:系统日志2:业务日志)" )
private String logType;//请求方法

@ApiModelProperty("请求方式:(GET/POST)")
@Column(name="type",columnDefinition = "varchar(255) comment 请求方式(GET/POST)" )
private String type;//请求方法

@ApiModelProperty("请求IP")
@Column(name="IP",columnDefinition = "text comment 请求IP" )
private String ip;//请求方法

@ApiModelProperty("操作的数据库表")
@Column(name="log_table",columnDefinition = "varchar(255) comment 操作的数据库表" )
private String table;//操作的数据库表

@ApiModelProperty("请求异常")
@Column(name="log_error",columnDefinition = "text comment 请求异常" )
private String logError;//请求异常

@ApiModelProperty("运行时长")
@Column(name="time",columnDefinition = "varchar(255) comment 运行时长" )
private long time;//

@ApiModelProperty("备注")
@Column(name="log_comment",columnDefinition = "text comment 备注" )
private String logComment;//备注
@ApiModelProperty("创建人")
@Column(name="create_by" )
private String createBy;//创建人
@ApiModelProperty("创建时间")
@Column(name="create_time" )
private Date createTime;//创建时间



//setter()/getter();


四、基本的CRUD

package ****.****.****.modules.sys.log.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.AOP统一日志打印处理

Springboot的Filter,HandlerInterceptor,Aspect与异常处理

为啥我的 @Aspect 无法被我的 SpringBoot 应用程序识别?

Spring Boot @Aspect 切面编程实现访问请求日志记录

springboot AOP全局拦截日志记录

SpringBoot—集成AOP详解(面向切面编程Aspect)