编写切面日志
来源:互联网 发布:php编辑器代码 编辑:程序博客网 时间:2024/06/06 03:31
编写切面日志
项目上线,我被派去部署项目,在项目部署时,log成为了我的块心病。因为项目方法执行较多,一直输出DEBUG,实在受不了了,我把级别调高了。但是我们组长说优化一下项目日志吧,我就开始苦B的学习怎么写切面日志了。我是一只大四实习狗,从学校一出来感觉什么都是新鲜的东西,什么都得学,但是很充实。
一说切面日志,就得谈一谈Aop,详谈Aop就要从动态代理说了,那什么是动态代理那,顾名思义就是灵活的替代做某件事。我读过一篇博文讲的很形象,用一场相亲讲述了动态代理的用途。
我们正常相亲是自己想找一个什么样子的对象,然后按照这个标准自己开始四处撒网了。但是有动态代理后,这个相当于一个婚姻介绍所,你把心中理想的目标的要求提出了,交给介绍所,剩下的等电话来相亲就好了,不用亲力亲为。
这样我们在说一下Aop,给大家推荐一篇文章,更有助于Aop的理解:http://blog.csdn.net/haluoluo211/article/details/52046937
理解aop后,开始正菜了。
首先需要引入log的jar
<!-- 日志处理 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
在spring配置文件里配置切面:
<aop:aspectj-autoproxy proxy-target-class="true">
<aop:include name="logAspect" />
</aop:aspectj-autoproxy>
<bean id="logAspect切面类名" class="com.common.utils.LogAspect切面路径" />
编写日志切面
import org.apache.log4j.Logger;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
/**
* 日志切面类
*
*/
@Aspect
public class LogAspect {
private static Logger_log = Logger.getLogger(LogAspect.class);
@Around("execution(* *..controller..*.*(..))")
public Object doAround(ProceedingJoinPointpjp) throws Throwable {
Long startTime = System.currentTimeMillis();
Object result = pjp.proceed();
Long endTime = System.currentTimeMillis();
_log.info("正在执行" +pjp.getSignature().toShortString() + ", 方法耗时为" + (endTime - startTime) / 1000 + "秒");
return result;
}
}
基本上完成了面向切面的全过程
- 编写切面日志
- 面向切面编写简介
- Spring切面管理日志
- spring Aspect 切面日志
- aop切面记录日志
- 面向切面日志记录
- spring aop切面编写demo
- springmvc 切面记录操作日志
- Spring 切面 记录请求日志
- springmvc 切面记录操作日志
- AOP切面进行日志记录
- 面向切面编程(AOP)应用,日志切面,基于注解
- Spring aop切面做日志处理操作
- 利用AOP实现日志切面统一处理
- spring aop 切面记录log4j日志
- Spring AOP切面日志Demo 配置文件方式
- spring配置日志切面,实现系统操作日志记录
- 切面
- 《MYSQL性能调优与框架设计》-总结
- POI导出Excel--合并单元格
- Spring AOP系列之AOP原理介绍
- Yocto: Building Yocto with meta-altera
- LeetCode--Unique Paths II
- 编写切面日志
- graphviz 路径问题
- redis3.0配置文件详解
- INIT_WORK和INIT_DELAYED_WORK
- Android-9种通话状态(精确)
- 如何生成关键词云图
- android中build.gradle详细说明
- Design Pattern 0: Intro
- 斯坦福大学机器学习笔记——多变量的线性回归以及梯度下降法注意事项(内有代码)