springboot面向切面编程AOP日志

springboot面向切面编程AOP

导入依赖

<!--AOP-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

AOP拦截处理类

/**
 * @Aspect 这是一个切面
 * @Component 放入component中,springboot才能自动注入
 */
@Aspect
@Component
public class AopAspect {
	private static final Logger logger= LoggerFactory.getLogger(AopAspect.class);
    
    // 添加service
    @Autowired
    private UserService userService;

    // 切入点:checkUser
    // @annotation(com.carter.annotation.AopAnnotation)(不美观)
    // 通常用表达式 *是通配符
    @Pointcut("execution(* com.carter.service.*.*(..))")
    public  void checkService(){
		logger.info("拦截请求start");
    }
    // 前置通知  joinPoint:获取拦截的方法
    @Before("checkService()")
    public void check(JoinPoint joinPoint){
        System.out.println("执行"+joinPoint+"方法之前...");
    }
}

AOP术语

在这里插入图片描述

@Before(“前置通知”) // 运行异常,将不执行

@After(“后置通知”) // 不管是否正常运行,都会执行

@AfterReturning(“返回通知”) // 返回值正常时执行

@AfterThrowing(“异常通知”) // 出现异常后执行

@Around // 环绕通知(有前,有后)

在这里插入图片描述

slf4j日志打印

  • yaml中的配置
// 控制台输出
logging.pattern.console="%d - %msg%n"  // %d:日期,-:就是一个杠,%msg:日志内容,%n:换行
// 输出到文件中
logging.file.name="文件输出的名字"
logging.file.path="文件输出的日志"

不使用与spring2.1.0的lombok插件

环境配置

<!--日志-->
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
</dependency>
    <!--简单日志门面-->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
</dependency>

properties配置

%d日期 %p级别 %n回车 %msg信息

#开启debug层的日志打印
logging:
  level:
    com:
      carter:
        dao: debug
  pattern:
    #控制台输出格式
    console: "%d 【%p】 %msg%n"
    #日志文件输出格式
    file: "%d 【%p】 %msg%n"
    #日志输出的路径
  path: C:\Users\海角天涯S\Desktop\springcloud-shop
  	#日志的名字
  file: C:\Users\海角天涯S\Desktop\springcloud-shop\consumer.log
2020-09-24 16:31:47,186 【ERROR】 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is feign.RetryableException: Read timed out executing GET http://product-service/product/queryAllProduct?currPage=1&pageSize=6] with root cause

java.net.SocketTimeoutException: Read timed out
	at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.8.0_45]

cause

java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.8.0_45]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值