用AOP统一记录日志(详细笔记入门)
Posted 加辣椒了吗?
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用AOP统一记录日志(详细笔记入门)相关的知识,希望对你有一定的参考价值。
文章目录
笔记:用AOP统一记录日志(小白入门)
就三步
一、引入架包
打开pom.xml文件,引入aspectj架包
代码如下:
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.7</version>
</dependency>
二、编写配置类
新建配置类LogAspect .java,代码如下
package com.example.community.logAspect;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @ClassName LogAspect
* @Description TODO
* @Author 加辣椒了吗?
* @Date 2022/4/28 22:22
* @Version 1.0
**/
@Component
@Aspect
public class LogAspect
private static Logger logger = LoggerFactory.getLogger(LogAspect.class);
// 设置切面
@Pointcut("execution(* com.example.community.controller.*.*(..))")
public void pointCut()
// 方法执行前输出日志
@Before("pointCut()")
public void before(JoinPoint joinPoint)
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes ();
HttpServletRequest request = attributes.getRequest ();
//用户ip
String ip = request.getRemoteHost ();
// 日期
String now = new SimpleDateFormat( "YYYY-MM-dd HH: mm:SS").format (new Date());
// 访问路径
String target = joinPoint.getSignature ().getDeclaringTypeName () + "." + joinPoint.getSignature ().getName ();
// 输出日志
logger.info (String. format ("用户[%s],在[%s] ,访问[%s].", ip, now, target));
三、运行
成功
总结
@作者:加辣椒了吗?
简介:憨批大学生一枚,喜欢在博客上记录自己的学习心得,也希望能够帮助到你们!
以上是关于用AOP统一记录日志(详细笔记入门)的主要内容,如果未能解决你的问题,请参考以下文章